手记

Java入门第二季的知识点零碎

实例变量经常被称为属性
成员变量和局部变量:前者在类中定义,后者在类的方法中定义且系统不会自动赋初始值
我们创建一个对象的时候实际上执行的是无参的构造方法

静态变量 static String arr;
静态方法:在静态方法中不能直接调用非静态变量,只能直接调用静态变量,如果要调用静态变量
则必须创建类的对象然后再通过类的对象来访问非静态变量
同理,在静态方法中也不能直接访问非静态方法,要通过创建类的对象然后通过对象名.方法名来实现访问非静态方法
但是在非静态方法中则既可以访问非静态变量和非静态方法也可以访问静态变量和静态方法
public static void main(String args【】)就是一个静态方法

程序运行时静态初始化块最先被执行,然后执行普通初始化块,最后才执行构造方法。由于静态初始化块只在类加载时执行一次,所以当再次创建对象 hello2 时并未执行静态初始化块。
this关键字代表当前的对象,this在封装对象的属性的时候经常会用到
this.方法即代表调用当前对象的某个方法

内部类的使用
生成一个新的内部类对象的时候格式必须要注意 内部类 对象名 = 外部类对象.new 内部类( );
1.先生成一个外部类的对象 Outer outer = new Outer();
2.使用外部类对象.内部类来生成一个新的内部类对象 Inner inner = outer.new Inner();

继承是一个很强大的性质,子类继承了父类,就直接拥有的父类的所有成员变量和方法
private 型的属性和方法是不能被继承的
java中继承的初始化顺序是:
先进行父类对象的属性初始化再进行父类构造方法初始化
接着进行子类属性的初始化,最后进行子类构造方法初始化
final关键字很强势
final修饰类,则该类不允许被继承
final修饰方法,则该方法不允许被重写覆盖
final修饰属性,则该属性必须进行初始化且不能被修改

子类构造的过程当中必须调用其父类的构造方法
若子类的构造方法中没有显式的调用父类的构造方法,则系统会默认调用父类的无参构造方法
若想要显式的调用父类的构造方法则必须在子类构造方法的第一行
*如果子类中没有显式的调用父类的构造方法而父类又没有无参的构造方法,则会出bug

Object类是java中所有类的老祖宗
没有标注继承自其他类的所有类都默认继承自Object类
在java中直接输出一个对象,得到的是该对象在内存中的哈希码(对象地址字符串)

Object类中的equals()方法
功能:比较对象的引用是否指向同一块内存的地址

多态
1.引用多态
父类的引用可以指向本类的对象
父类的引用也可以指向子类的对象(向上转型)
2.方法多态
创建本类对象时,调用的方法为本类方法
创建子类对象时,调用的方法为子类重写的方法或者是继承的方法
不能用父类的引用调用子类中独有而父类中没有的特殊方法

在进行强制类型转化的时候(向下转型)
最好使用instanceof关键字进行验证,避免尴尬

抽象类:不关注子类的实现,但是会约束子类的实现行为
抽象类中的方法没有方法体,所以结束的时候以分号;来表示

java中在创建一个接口的时候,命名过程中最好在名称之前加上一个I
接口中方法不能有方法体,同时方法的访问修饰符不能是 private 和 protected

1人推荐
随时随地看视频
慕课网APP