提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
static
修饰成员变量
称为静态成员变量(类变量),属于类,只能在类主体中定义。随着类加载只在堆内存中存在一份,可以被共享访问。
可以通过 类名.变量名 访问(推荐)
也可以通过 对象名.变量名 访问 (不推荐)
区别于实例成员变量,属于对象,只能通过 对象名.变量名 访问 。
修饰成员方法
静态成员方法(类方法),属于类,通常用类名访问。只能访问静态成员
使用场景:
静态方法:执行一个通用功能,或需要方便访问。
实例方法:表示对象自己的行为,且方法中需要直接访问实例成员,则必须声明成实例方法。
静态代码块
static{}
特点:通过static关键字修饰,随着类加载而加载,自动触发并只执行一次。
使用场景:在类加载的时候做一些静态初始化操作,以便后续使用。
构造代码块 (很少用)
{}
特点:每次创建对象,调用构造器执行时,都会执行该代码块中的代码,并在构造器执行前执行。
使用场景:初始化实例资源
饿汉单例设计模式实现
1.构造器私有化
2.使用静态成员变量存储对象
懒汉单例设计模式实现
在真正需要该对象时,才去创建一个对象
1.构造器私有化
2.使用静态成员变量存储对象
3.提供一个返回单例对象的方法
public static SingleInstance getInstance(){
if(instance == null){
instance = new SingleInstance();
}
return instance;
}
权限修饰符
用来控制一个成员能够被访问的范围。
可修饰成员变量、方法、构造器、内部类。
final
修饰类:表示该类为最终类,不能被继承。
修饰方法:最终方法,不能被重写。
修饰变量:变量第一次赋值后不能再次被赋值。如果是基本类型,数据值不能改变,如果是应用类型,地址值不能改变。
常量
使用public static final修饰的成员变量,必须有初始化值,且程序执行过程中其值不能被更改。
枚举
枚举是java中的一种特殊类型。
其作用是 做信息的标志和信息的分类。
格式:
enum 枚举名称{
枚举类实例的名称
}
枚举都继承java.lang.Enum。枚举类都是最终类,不可被继承,构造器私有,不能对外创建对象
多态
同类型的对象,执行同一个行为,会表现出不同的行为特征。
常见形式:
父类类型 对象名称 = new 子类构造器;
接口 对象名称 = new 实现类构造器;
多态类中的成员访问特点:
方法调用:编译看左边,运行看右边。
变量调用:编译看左边,运行也看左边。(多态侧重行为多态)
多态的前提:
有继承/实习关系;有父类引用指向子类对象;有方法重写。