static:
可修饰方法或属性。还可修饰包。(修饰包可以直接使用该包内的方法)
static修饰的方法或属性 在该类存在时就存在了。并且只会加载一次。之后每次运行都不会再重新运行加载。
静态属性(变量):
public class Student{ private static int age;// 静态变量 private String name;// 非静态变量 public static void main(String[] args) { System.out.println(Student.age); // 调用静态变量 System.out.println(new Student().name);// 调用非静态变量 } }
静态方法:
public class Student{ // 静态方法 public static void go(){ System.out.println("静态方法"); } // 非静态方法 public void run(){ System.out.println("非静态方法"); } public static void main(String[] args) { go(); // 调用静态方法 new Student().run(); // 调用非静态方法 } }
匿名代码块、静态代码块、构造器运行的运行先后顺序:
静态代码块(只运行加载一次)> 匿名代码块(可用于初始值) > 构造器
public class Student{ { System.out.println("我是匿名代码块"); } static { System.out.println("我是静态代码块"); } public Student() { System.out.println("我是构造器"); } public static void main(String[] args) { new Student(); System.out.println("==========================="); new Student(); } }
输出结果:
重复赘述:
类(class/对象)中的static可以直接调用,不用去new类(class/对象)。方法前加了static后可以不用再new就能直接使用。
加了static的方法是在该类存在的时候该方法就存在了,不加static就需要new。
拓展:final修饰的类将不能被继承
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)