1.static
1.static概念
工具类
2.static内存图
静态变量是随着类的加载而加载的,优于对象出现
3.static的注意事项
1.静态方法中,只能访问静态 : 因为非静态方法一般会传入调用方法的对象的地址this(一般是虚拟机自动调用,不需要手动传入, 如student.study()).但是由于静态方法是所有对象共享的,所以不需要传入调用对象的地址值,所以没有this, 没有this自然没有办法访问静态的变量或方法.
2.非静态方法因为有this,也就是对象的地址值,所以自然可以调用非静态方法,而静态方法所有的对象都可以调用,所以非静态方法可以访问所有.
从内存的角度解释 : 静态变量和方法是和类一起创建的, 而非静态变量和方法是和对象一起创建的, 如果没有创建对象, 那么也就没有非静态变量, 所以静态变量和方法可以互相调用, 而不能访问非静态的东西.
静态方法不能调用实例变量 : 因为没有实例对象.
2.继承
1.概念
2.继承的特点
3.哪些东西能被子类继承
1.构造方法不能继承, 每个子类都需要自己的构造方法(虚拟机会自动生成空参构造).
2.私有的成员变量可以继承, 但是不能直接调用, 需要set和get方法来获取.
只有父类中的虚方法才能被子类继承
4.成员变量的访问特点
5.方法的重写
当返回值类型是一个类的时候(比如animal), 那么子类方法的返回值类型必须小于等于父类.
6.总结
7.继承中的构造方法
1.调用父类的带参构造
8.this, super使用总结
this本质就是一个局部变量, 一般代表地址值
在构造方法中可以用this访问本类的其他构造方法