美文网首页
JAVA类静态变量

JAVA类静态变量

作者: Stack1_e27c | 来源:发表于2019-12-09 16:36 被阅读0次

    在JAVA语言中,变量分为两种,一种为大家经常熟悉使用的实例变量,另一种是由关键字static修饰的静态变量,静态变量属于类变量,不依赖于类声明的实例,静态变量的生命周期从类加载开始,到类销毁结束,只要程序加载了类,不用声明任何实例,静态变量就会被分配内存空间,实例变量则依赖于类声明的实例,当实例销毁时,实例变量也会被销毁。无论类声明了多少个实例,永远都只声明了一个static变量由所有实例共同使用,下面贴了一张代码

    /**
     * Created by DELL on 2019/12/9.
     */
    public class Time{     //时间类
        static int year = 1996;   //年份
        int month = 12;         //月份
        int day = 29;             //日期
    
        public Time(){
            this.year++;       //自增1
            this.month++;     //自增1
            this.day++;       //自增1
        }
    
        public static void main(String []args){
            Time time1 = new Time();     //创建第一个实例
            System.out.println("year:"+time1.year+", month:"+time1.month+", day:"+time1.day);
            Time time2 = new Time();     //创建第二个实例
            System.out.println("year:"+time1.year+", month:"+time1.month+", day:"+time1.day);
        }
    }
    

    运行结果:

    运行结果
    从结果可以看出,在创建两个实例时,变量month和day的值并没有改变,而变量year的值却自增1,这是因为,未由static修饰的变量month和day都属于实例变量,所以创建不同的实例时,每个实例都创建了属于实例本身的month和day变量,而变量year属于类,并不属于实例,所以两个实例修改的其实是同一个year变量,所以year变量的值产生了变化。

    相关文章

      网友评论

          本文标题:JAVA类静态变量

          本文链接:https://www.haomeiwen.com/subject/dlabgctx.html