一、静态_static
1.成员变量
1.类变量
定义:有static修饰的变量是类变量
访问方式:类名.变量名
注意:类变量只在类加载时加载一次
2.实例变量
定义:没有static修饰的变量是实例变量,需要new一个对象产生实例
访问方式:对象名.变量名
2.成员方法
1.类方法
定义:有static修饰的方法
访问方式:类名.方法名
2.实例方法
定义:无static修饰的方法
访问方式:对象名.方法名
3.应用(工具类)
建议构造器私有,工具类无需创建对象
提高代码复用性,通过工具类名.方法名无需创建对象,节省内存
4.注意
类方法中可以直接访问类变量,不能直接访问实例变量
实例方法可以直接访问类变量和实例变量
类方法中可以出现this,实例方法中不能出现this
3.代码块
1.静态代码块
定义:static{}
类加载时加载一次,用于工具类的引入和数据的初始化,例如类变量的赋值
2.实例代码块
定义:{}
创建一个对象执行一次,用于给实例变量赋值
3.注意
代码块在构造器执行前执行。
二、继承
1.语法
定义:public class B extends A{}
特点:子类会继承父类的所有属性,包括私有属性,但是子类只能访问父类中的非私有属性
创建:有父类和子类共同创建,先执行父构造器再执行子构造器
2.权限修饰符
1.private
范围:本类
2.default(缺省)
范围:本类 本包
3.protected
范围:本类 本包 子孙代
4.public
范围:任意位置
3.单继承
Java中一个类只能继承一个父类,不支持多继承,接口支持多继承
Java支持多层继承,即一个类A继承一个类B,类B又继承类C,类C继承类D.....
Object类是所有类的祖宗
4.子类
1.子类中访问其他成员的特点
子类中,访问成员变量和成员方法时依照就近原则,以成员变量name为例:
name ->this.name->super.name
成员变量->类变量 ->父类同名变量
2.子类构造器的特点
1.子类中的全部构造器都需要先执行父类构造器再执行子类构造器
2.使用super()调用父类中的构造器
3.使用this调用本类中的构造器
4.super()和this都只能在方法的第一行,故不能同时存在