精通Java学习之路(二)
精通Java学习之路(二)
何平安本文章的图片由于是天香园1.0的但是过期了图片就查看不了,就当我自己的一个纪念了吧~
—抽象类与接口—
->抽象类的抽象概念:父类知道子类一定要干嘛,但是每个子类完成的都不一样,子类以后也只会用重写的功能,那么父类的该功能就可以定义为抽象方法,子类重写调用子类自己
->父类中的所有抽象方法在子类中必须被全部重写,或者把这个子类也写成抽象类。
抽象类存在的意义就是当母猪生孩子,就是拿来被继承的
->接口interface,是更加彻底的抽象,用于规范思想,子类必须实现接口的全部抽象方法
->实现接口的类称为实现类
接口中所有的抽象方法也是全部要重写
->接口也可以继承接口
接口中没有构造器,不能创建对象
类有5大成分:成员变量,方法,构造器,代码块,内部类
静态代码块优先会与类执行一次,可用于初始化操作,实例代码块用于执行实例对象,可用于初始化实例资源。
–final-
**
**final(最终):修饰类,表示该类不能被继承了,实际开发中没怎么用
final修饰方法,该方法不能被重写
final修饰变量,变量有且只能赋值一次
final静态变量也可以用 静态代码块赋值:
单例设计模式:一个类永远只存在一个对象,就像虚拟机,任务管理器,有些只能开一个窗口的游戏。
饿汉单例设计模式:通过类获取单例对象的时候,对象就已经提前做好了
—xml文件—
xml(可扩展标记语言)文件用于数据交换,数据传输;配置文件;数据存储;
xml文件元素: 声明(抬头):
元素(标签)(一个XML文件只能有一个根标签,就是最大的那个),属性,注释,实体字符,CDATA字符数据区,处理指令。元素(标签)(一个XML文件只能有一个根标签,就是最大的那个),属性(id=?,desc=?),注释(),实体字符(转义字符),CDATA字符数据区,处理指令(就是css)。
xml中的转义字符:
<为<>为> “为"’为'&为&
html是用来显示数据的;xml是用来描述数据、存放数据的,xml不是HTML的替代品,xml和html是两种不同用途的语言。 XML 不是要替换 HTML;实际上XML 可以视作对 HTML 的补充。XML 和HTML 的目标不同HTML 的设计目标是显示数据并集中于数据外观,而XML的设计目标是描述数据并集中于数据的内容,XML是一种跨平台的,与软、硬件无关的,处理与传输信息的工具。
这边建议直接上代码,里面有注释好了解看些,复制到自己的IDE去看吧
抽象类学习代码:
1 | public class chouxiang {static abstract class Animal{public abstract void run();//抽象方法public abstract void eat();}//父类定义为抽象的static abstract class Dog extends Animal{@Overridepublic void run(){System.*out*.println("狗跑步");}}static class Cat extends Animal{@Override//必须重写抽象类的全部方法,不然这个类也要被写成抽象类public void run(){System.*out*.println("猫跑步");}@Overridepublic void eat(){System.*out*.println("猫吃饭");}}public static void main(String[] args) {Cat cat =new Cat();cat.eat();cat.run();//抽象类不能创建对象,但是一定有构造器*/** |
接口学习代码:
接口类:
1 | public interface jiekou {public abstract void run();//标灰是因为接口中的抽象方法默认就是public abstract,所以可以省略不写前面的void eat();public static final String *name* = "sb";//常量,运行过程中不许更改//接口中常量可以省去public static finalclass cl1{public void hit(){System.*out*.println("父类打");}}interface inter{default void hit(){System.*out*.println("接口打");}}class cl2 extends cl1 implements inter{//继承在前接口在后,继承为亲爹,接口为干爹public static void main(String[] args) {cl2 cc =new cl2();cc.hit();//运行出来是父类的方法} |
实现类:
1 | interface jiekou2{void go();}interface jiekou3 extends jiekou4,jiekou5{ |
xml学习的代码:
代码块学习时候的代码:
1 | public class daimakuai {private final String name;static {System.*out*.println("静态代码块,先执行一次");}{System.*out*.println("实例代码块执行一次");name="何平安";} |