Java——static关键字

家人们不好意思,这俩天事情颇多,现在我又回来辣!!!

在类中,用static声明的成员变量为静态成员变量,也称为类变量。类变量的生命周期和类相同,在整个应用程序执行期间都有效。它有如下特点:

  • 为该类的公用变量,属于类,被该类的所有实例共享,在类被载入时显式初始化。
  • 对于该类的所有对象来说,static成员变量只有一份。被该类的所有对象共享!!!
  • 一般用“类名.类属性/方法”来调用。(也可通过对象引用或类名(不需要实例化)访问静态成员)
  • 在static方法中不可直接访问非static的成员

static关键字的使用示例代码

public class User {
    int id;
    String name;
    String pwd;
    static String company="小狗";
    public User(int id,String name){
        this.id=id;
        this.name=name;
    }
    public  void login(){
        System.out.println("登录:"+name);
    }
    public static void printcompany(){
        //login();//调用非静态成员,编译就会报错
        System.out.print(company);
    }
    public static void main(String[]args){
        User a=new User(1908,"doudou");
        User.printcompany();
        User.company="小狗doudou";
        User.printcompany();
    }
}
//小狗公司小狗doudou

静态初始化块

构造方法用于对象的初始化!静态初始块,用于类的初始化操作!在静态初始化块中,不能直接访问非static成员。

注意事项:

  • 先执行Object的静态初始化,再向下执行子类的静态初始化块,直到类的静态初始化块为止
  • 构造方法执行顺序和上面的顺序一样!

static初始化块示例代码

public class User {
    int id;
    String name;
    String pwd;
    static String company;
    static {
        System.out.println("执行类的初始化工作");
        company="京京小狗";
        printcompany();
    }

    public static void printcompany(){
        //login();//调用非静态成员,编译就会报错
        System.out.print(company);
    }
    public static void main(String[]args){
        User u3=new User();
    }
}
/**
 * 执行类的初始化工作
 * 京京小狗*/

你可能感兴趣的:(java,开发语言)