static关键字(重点)
静态变量
-
访问格式:
- 类名访问(推荐)
- 对象名访问
-
内存特点:内存只有一份
-
类加载时,静态变量就会在内存出现
-
静态变量被所有对象共享使用
-
在线人数,国籍,学校等这些共享的数据,可以考虑设计成静态。
静态方法
-
调用格式
- 类名访问(推荐)
- 对象名访问
-
使用注意
- 1.静态方法只能访问静态变量
- 2.静态方法不能使用this和super等代表对象的关键字
-
应用场景
-
工具类的设计
- 1.方法都是静态方法,方便调用
- 2.工具类的构造方法通常会私有
-
代码块(了解)
构造代码块
- 格式:{ }
- 执行时机:每次调用构造方法时,都会执行构造代码块。
- 作用:可以将多个构造方法中相同的代码抽取到构造代码块中,复用代码。
静态代码块
- 格式:static{ }
- 执行时机:类加载时执行,而且只会执行一次。
- 应用场景:如果类加载时,需要完成某些数据的初始化,就可以使用静态代码块。
继承
格式
- public class 子类 extends 父类{
}
特点
- java类只能支持单继承,允许多层间接继承
不能继承的成员
- 父类的构造方法不能被继承。
- 父类私有的方法不能被继承
- 父类私有的成员变量可以被继承,但是无法被直接访问。
继承关系下,对父类和子类中同名的变量和方法的访问
-
遵循就近原则
-
可以使用super,明确的访问父类的成员
- super.父类变量
- super.父类方法()
方法重写
-
子类对继承下来的方法的重新实现
-
规则
-
不变
- 方法名和参数
-
可以变化
- 权限可以更大
- 返回值类型可以范围更小
-
实际开发中,通常会保持整个方法的格式不变,重新实现内容就可以。
- 外壳不变,内核重写。
-
@Override注解,可以检查重写的语法是否正确
-
在子类中调用父类的构造方法
- 创建子类对象时,会默认调用父类的无参构造方法
- 调用父类的带参构造方法:super(参数)
this和super的区别
- this代表本类的对象,可以访问本类的成员
- super代表父类的内存空间,可以访问父类的成员