static关键字

static关键字

静态变量(类变量)、静态方法(类方法):static声明的属性或方法。

静态变量/静态方法生命周期和类相同,在整个程序执行期间都有效。它有如下特点:
为该类的公用变量,属于类,被该类的所有实例共享,在类载入时被初始化。
static变量只有一份。
一般用“类名.类变量/方法”来调用。
在static方法中不可直接访问非static的成员。

package Test1;

/**
 * 测试Static方法
 * Static属性和方法,属于类 方法区
 * 其他普通的属性和方法属于对象 堆区
 */
public class TestStatic {
    int id; //id
    String name; //账户名

    static  String company = "北京尚学堂";//公司名称
    public TestStatic(int id,String name){
        this.id = id;
        this.name = name;
    }
    public void Login(){
        System.out.println(name);
    }

    public static void printCompany(){
//        Login();静态方法中不能调用非静态成员
        System.out.println(company);//company也是静态的
    }

    public static void main(String[] args) {
        TestStatic t = new TestStatic(101,"yeshen");
        TestStatic.printCompany();
        TestStatic.company = "百战";
        TestStatic.printCompany();//只属于类
        t.Login();//直属于对象
    }

}

静态初始化块

构造方法用于对象的普通属性初始化。

静态初始化块,用于类的初始化操作,初始化静态属性。

在静态初始化块中不能直接访问非static成员。

注意事项
静态初始化块执行顺序(学完继承再看这里):
上溯到Object类,先执行Object的静态初始化块,再向下执行子类的静态初始化块,直到类的静态初始化块为止。
构造方法执行顺序和上面顺序一样!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值