1. 类的成员变量有默认初始化值。
2. 局部变量没有默认初始化值。
3. 局部变量和成员变量名称相同的时候,在方法调用的时候,采用就近原则。
4. 子类的构造方法默认会访问父类中的空参构造方法。
子类会继承父类的数据还可能会使用父类中的数据,所以子类在初始化之前要先初始化父类中的数据;
子类的构造方法中系统会默认添加super()方法,用来访问父类的空参构造方法;
5. Object类是最顶层的父类,没有继承的话会默认继承Object。
6. this是当前对象的引用,super是当前对象父类的引用。
7. 系统会默认添加空参构造,当提供有参构造时,系统不会再提供无参构造。
8. super()提供参数来访问父类中的有参构造方法。
9. final修饰基本数据类型不可以改变值,修饰引用数据类型是地址不可以改变,但是对象中的属性可以改变。
10. final修饰的类不能被继承,final修饰的方法不能被重写。
11. final修饰变量初始化的时机:显示初始化,在对象构造完毕前即可。final修饰的变量智能被初始化一次。
12. 代码块
局部代码块,构造代码块,静态代码块
13. 静态方法只能被静态方法重写。
14. 方法重写的访问权限不能更低,最好是相等。
15. 接口中的方法都是抽象方法,接口不能被实例化。
16. 接口的子类
可以是抽象类。但是意义不大
可以是具体类,但是要重写接口中的所有抽象方法
17. 接口中成员变量:在接口中的成员变量都是常量,并且是静态的并公共的
默认修饰符:static,public,final(三个修饰符没有顺序之分,可以互相交换位置)
18. 接口构造方法:接口中没有构造方法。
19. 接口成员方法:只能是抽象方法,默认修饰符是public,abstract。
20. 类和类的关系
继承关系,只能是单继承,但是可以多层继承
21. 类与接口的关系
类实现接口,可以单实现,也可以多实现
可以在继承一个类的同时实现多个接口
22. 接口与接口
继承关系,可以单继承,也可以多继承
23. package,通常包名是域名的倒写。
24. 定义包的注意事项
package语句必须是程序的第一条可执行语句
package语句在一个java文件中只能有一个
如果没有package,默认表示无包名
25. 编译带包的类,java -d . xxx.java
26. protected修饰的方法在不同包下的无关类中不能访问。
27. 内部类的访问特点
内部类可以直接访问外部类的成员,包括私有
外部类要访问内部类的成员,必须创建对象
外部类名.内部类名 对象名 = 外部类对象.内部类对象
28. 局部内部类只能访问方法中的常量。
29. 匿名内部类是定义在方法中的内部类,是内部类的简化写法。
前提是存在一个类或者接口,这里的类可以是具体类也可以是抽象类
格式:new 类名或者接口名(){
重写方法;
}
30. 成员变量的默认初始化值;整型是0,浮点型是0.0,布尔型是false,char型是u0000,引用数据类型是null。
31. 方法的重写返回值,参数和方法名必须一致,或者返回值类型是子父类。