一、对象是用于封装数据的。
二、什么时候使用静态?
1. 静态变量
当对象中出现共享数据时。
2. 静态函数
当功能内部没有访问到非静态数据
(对象的特有数据 例如private name),就是用静态函数。
三、静态的应用
1.每一个应用程序中都有共性的功能,可以将这些功能进行抽取,独立封装,以便复用。例如工具类。
2.虽然建立了静态类,但是,他还是可以被建立对象,这样做其实没有意义。为了严谨,会强制让该类不能创建对象。所以,往往会把他的构造函数私有化。
3.默认构造函数的权限是随着类的变化而变化的。
四、注释的作用
它可以被提取出来生成API文档。没错,就是你看到的API文档。
五、静态代码块
Static{ }
随着类的加载而执行,只执行一次。用于给类初始化。类加载到内存后,就可以随便用,类只加载一次。
并且静态代码块是优先于静态函数的。因为静态函数是被调用就会执行,而他是没名字,不调用也会执行。
class Code {
static{
System.out.println("a");
}
}
class Demo{
static{
System.out.println("b");
}
public static void main(String[] args) {
new Code();
new Code();
System.out.println("over");
}
}
分析:1.demo类一加载到内存,还没执行调用,就会输出b.
2.然后到第二个修饰块,输出c.
3.主动调用主函数,加载Code类,code类修饰,输出a.
4.再次new code类,但他不会再加载,无输出。
5.输出over
注意两点:
1.静态块修饰类。在加载到内存时修饰。
2.New不是加载。只要用到这个类的东西,就会加载。而new只是第一次new会加载。更多是创建实例,加载只是一部分。
注 不加static的块可理解为修饰对象的。