学习原因:阅读代码遇到static{ }问题
学习视频:【狂神说Java】Java零基础学习视频通俗易懂_哔哩哔哩_bilibili
学习总结: 静态只能调用静态,非静态可以调用(非)静态。加载顺序问题(静态与类一起加载)。
理解:静态与类一起加载,若静态方法里面包含非静态方法,由于执行的先后顺序,一开始时找不到非静态方法。
静态变量:
public class Student{
private static int age; //静态变量
private double score; //非静态变量
//age 可以通过类名Student调用,score只能通过对象调用
}
静态方法:
非静态方法必须通过对象调用,静态方法可以通过类名调用,也可以在当前类中直接调用。非静态方法可以直接调用静态方法,反之不行。
静态代码块:
public class Person{ }里面写:
静态代码块:static{ },与类class一起加载,且只执行一次。
(匿名)代码块:{ },创建对象时就创建了。
构造代码块:public Person( ){ }。
(第一次)执行顺序:静态代码块---->匿名代码块---->构造代码块
(第二次)执行顺序:匿名代码块---->构造代码块
静态导入包:使代码更简洁。
例:import static java.lang.Math.random;
Math.random()可用random()取代。
final 修饰:不能被继承。