Java进阶学习笔记2——static修饰成员变量

static:

叫静态,可以修饰成员变量、成员方法。

成员变量按照有无static修饰,分为两种:

类变量:有static修饰,属于类,在计算机中只有一份,会被类的全部对象共享。静态成员变量。

实例变量(对象的变量):无static修饰,属于每个对象。

类名.类变量(推荐)

对象.类变量(不推荐)

Student类:

package cn.ensource.d1_staticdemo;

public class Student {
    // 类变量
    static String name;
    // 实例变量(对象变量)
    int age;
}

Test类: 

package cn.ensource.d1_staticdemo;

public class Test {
    public static void main(String[] args) {
        // 目标:掌握有无static修饰成员变量的用法、特点
        // 1. 类变量的用法
        Student.name = "袁华";

        Student s1 = new Student();
        s1.name = "马东梅";

        Student s2 = new Student();
        s2.name = "秋雅";

        System.out.println(s1.name); // 秋雅
        System.out.println(Student.name);

        s1.age = 23;
        s2.age = 18;
        System.out.println(s1.age);
        System.out.println(s2.age);
    }
}

成员变量执行原理:

 类变量直接放在堆内存中。

类变量:属于类,与类一起加载一次,在堆内存中只有一份,可以被类和类的所有对象共享。

实例变量:属于对象,每个对象都有一份,只能用对象访问。

类变量的应用场景:

在开发中,如果某个数据只需要一份,且希望能够被共享(访问、修改),则该数据可以定义类变量来记住。

案例导学:

系统启动后,要求用户类可以记住自己创建了多少个用户对象了。

package cn.ensource.d1_staticdemo;

public class User {
    public static int number;  // 类变量对外公开,方便别人访问

    public User() {
//        User.number++;
        // 注意:在同一个类中,访问自己的类变量
        number++;
    }
}
package cn.ensource.d1_staticdemo;

public class Test2 {
    public static void main(String[] args) {
        // 目标:通过案例理解类变量的应用场景
        User user1 = new User();
        User user2 = new User();
        User user3 = new User();

        System.out.println(User.number);
        User user4 = new User();
        System.out.println(User.number);
    }
}

访问自己类中的类变量,是否可以省略类变量不写呢?

可以的。

注意:在某个类中访问其他类里的类变量,必须带类名访问。

  • 11
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值