java _static 关键字

本文介绍了Java中用static声明的成员变量和方法。静态成员变量是类属性,被该类所有实例共享,优先于对象存在,置于方法区。静态方法无需对象即可调用,只能访问静态成员。还提到静态初始化块,用于类加载时的初始化操作,且只执行一次,不能访问非static成员。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

• 在类中,用static声明的成员变量为静态成员变量 ,或者叫做: 类属性,类变量.

   • 它为该类的公用变量,属于类,被该类的所有实例共享,在类被载入时被显式初始化,

  • 对于该类的所有对象来说,static成员变量只有一份。被该类的所有对象共享!!

  • 优先于对象存在,随着类的加载而加载  

  • 可以使用”对象.类属性”来调用。不过,一般都是用“类名.类属性”

  • static变量置于方法区中!

  如果一个类中所有的成员都是静态的。那么它的构造函数应该设置成 private 的,这样以避免 这个类 被创建成对象

                

 


• 用static声明的方法为静态方法

  • 不需要对象,就可以调用(类名.方法名)

  • 在调用该方法时,不会将对象的引用传递给它,所以static方法中不可访问非static的成员。只能访问静态成员变量和静态成员方法;

    而非静态方法,既可以访问静态成员也可以访问非静态成员

  • 静态方法不能以任何方式引用this和super关键字;(随着类加载而加载,而this是随着对象的创建而存在)

 

public class TestStatic { 

    int a; 
    static int width; 

    static void gg(){
         System.out.println("gg"); } 

    void tt(){ 
        System.out.println("tt"); } 

    public static void main(String[] args){ 
        TestStatic hi = new TestStatic(); 
        TestStatic.width = 2; 
        TestStatic.gg();  //gg(); 
        hi.gg();    //通过引用也可以访问static变量或static方法。不过,一般还 是使用类名.static成员名来访问。 
        gg(); 
       } 
}

 


静态初始化块

• 如果希望加载后,对整个类进行某些初始化操作,可以使用static初始化块。

类第一次被载入时先执行static代码块;类多次载入时,static代码块只执行一次;Static 经常用来进行static变量的初始化。

• 是在类初始化时执行,不是在创建对象时执行。

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

public class TestStaticBlock { 
    static { 
        System.out.println("此处,可执行类的初始化工作!"); 
        }
     public static void main(String[] args) { 
     System.out.println("main方法中的第一句");
     }
 }            

 

转载于:https://www.cnblogs.com/gaoyang666/p/10802940.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值