[JAVA][从0开始的JAVA随笔]静态(static)属性的使用方法及注意事项

Posted kang-l

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[JAVA][从0开始的JAVA随笔]静态(static)属性的使用方法及注意事项相关的知识,希望对你有一定的参考价值。

除了内部类之外,类一般不能具有静态属性。

如下定义了一个外部类Static_test和一个内部静态类Static_class:

class Static_test{
    
    Static_test(){
        s_int = 1;
    }
    
    public static int s_int;
    
    public static void s_func(){
        System.out.println("s_int = "+s_int);
    }
}

 

public class Hello{
    
    Hello(){

    }
    
    public void seta(int num){
        a = num;
    }
    
    public void setb(int num){
        b = num;
    }
    public void showa(){
        System.out.println("a = "+a);
    }
    public void showb(){
        System.out.println("b = "+b);
    }
    
    public static int a;
    public int b;
    
    static class Static_class{
        
        Static_class(){
            s_int = 2;
        }
        
        public static int s_int;
        
        public static void s_func(){
            System.out.println("s_int = "+s_int);
        }
    }

    public static void main(String[] args){
        Hello h1 = new Hello();
        Hello h2 = new Hello();
        System.out.println("h1:");
        h1.showa();
        h1.seta(4);
        h1.setb(2);
        h1.showb();
        System.out.println("h2:");
        h2.showa();
        h2.setb(3);
        h2.showb();
        System.out.println("h:");
        System.out.println("a = "+Hello.a);
        
        Static_test st = new Static_test();
        
        Static_class sc = new Static_class();
        
        Static_test.s_func();
        
        Static_class.s_func();
    }
}

输出:

技术分享图片 

调用外部类及内部类的静态成员时,只能使用 [类名.成员名] 或 [成员名] 的方式调用,无法使用对象来调用静态成员。

静态成员归类所有,所有实例对象调用的静态成员都指向类本身的静态成员,若静态成员被修改,则所有对象调用时得到的都是修改之后的静态成员。

 

以上是关于[JAVA][从0开始的JAVA随笔]静态(static)属性的使用方法及注意事项的主要内容,如果未能解决你的问题,请参考以下文章

随笔⑨ java中的变量 --- 类变量(静态变量),final变量,成员变量,局部变量

随笔25 java中的类加载顺序

Java---类加载机制,构造方法,静态变量,父类,变量加载顺序

随笔13 java中的普通代码块,构造代码块,静态代码块

一个 static 还能难得住我?

一个 static 还能难得住我?