static
静态方法
静态的加载优先于对象 随着类的加载而加载
被所有对象共享
可以使用类名
静态只能使用静态的属性和方法 不能使用非静态
非静态可以使用静态的属性和方法
类的执行顺序
静态代码块
默认初始化
构造代码块
构造方法
匿名 : 没有名字
匿名对象 : 没有名字的对象
匿名对象 只在使用一次的时候使用
final : 最终的 最后的 断子绝孙
修饰 变量 不能被修改了 他是个常量 常量命名规则 : 所有单词全部大写
修饰类 不能被继承
修饰方法 不能被重写
请写出一个单例 : 在java内存中只有一个对象
1、 不能让用户new 私有构造
2、提供一个公开的方法 让用户来获取对象
懒汉式 -----> 懒 事情到眼前了才做饿汉式 -----> 饿 提前搞
/ 饿汉式 空间换时间
private static Earth earth = new Earth();
// 懒汉式
// 时间换空间
private static Earth earth;
public static Earth getEarth() {
if(earth == null) {
earth = new Earth();
}
return earth;
}
构造代码块 构造代码块会在创建对象的时候执行
// 构造代码块会优先于构造方法执行 和写的顺序无关
// 构造方法 帮我们初始化一个对象出来
// 当构造方法执行完毕之后对象已经初始化好了
// 构造代码块 一般就只用于初始化数据
java中没有多继承 但是有多层继承
方法重载 : 方法名相同 参数列表不同 与返回值无关 overload
方法重写 : 只有有子父类关系 才会存在 所有东西全部相同 override
this : 当前类对象
super : 父类对象
可以使用this() 调用自己的构造方法
super() 调用父类的构造
只能在第一行
继承中 初始化的时候 先初始化父类 在初始化子类