1.当static作为静态属性时:
这里列举了static静态变量时的age和非静态变量score;我们首先调用age时,可以使用类调用或变量调用,
这里发现用变量s1调用时都可以调用,而在使用类Student调用时,却发现可以调用age但是却无法调用score,这是因为age是静态变量,即如果想要很多类去操作的话就需要用static。
实例化的就需要用new关键字来“引用.”来调用,而静态变量不需要。即每个人一份是用实例变量,而大家都一样的就是静态变量。
2.static作为静态方法时:
这里我们列举一个静态方法go和非静态方法run
在new对象Student之前,我们发现在主方法main方法中通过类调用run和go方法时,可以调用go方法,甚至可以直接通过go();来直接调用,但是却无法调用run方法,这是因为run方法为一个非静态方法,而主方法main为静态方法,静态方法无法调用非静态方法,静态方法可以调用静态方法,非静态方法可以调用静态方法,而在主方法中new了对象student之后,就可以在main方法中直接调用非静态方法run啦。
调用所有static修饰的,直接用“类名.方法名”来调用,而实例变量则需要new对象然后用“引用.”的方法来调用。
3.static静态代码块
如果方法要执行多次的话,static静态代码块只执行一次,但是在那次执行时作为第一个执行,而其它的要执行多次,
这里列举了匿名代码块,static静态代码块和构造方法
这里输出发现第一次并且第一个输出了静态代码块,而第二次只输出了匿名方法块和构造方法。
**匿名代码块也可以用来赋初始值
4.新特性,静态导入包
这里我们会用到一个Math.random ();这个方法可以随机输出一个数,即每次输出的数都是随机的,
一开始我们调用这个时,需要这样输出
当我们静态导入包之后,我们就可以直接这样输出,
(记住lang喔);
5.final修饰符
被final修饰的类不能有子类,即不能被继承