静态成员和实例成员的区别

  1. 所属关系:静态成员属于类本身,而实例成员属于类的实例(对象)。

  2. 内存分配:静态成员在内存中只有一份拷贝,而实例成员在每个对象实例化时都会有一份独立的拷贝。

  3. 访问方式:静态成员可以直接通过类名访问,无需创建类的实例,而实例成员需要通过类的实例才能访问。

  4. 生命周期:静态成员的生命周期和类的生命周期一致,即使没有类的实例存在,静态成员也可以被访问和操作。而实例成员的生命周期与对象实例相关,在对象实例被销毁时也会被销毁。

  5. 访问限制:静态成员可以访问类内的其他静态成员(包括静态变量和静态方法),以及类外的其他静态成员(通过类名访问)。实例成员可以访问类内的静态成员和实例成员。

    public class MyClass {
        static int staticVariable; // 静态成员变量
        int instanceVariable; // 实例成员变量
    
        static void staticMethod() { // 静态方法
            // 静态方法可以访问静态成员(包括静态变量和静态方法)
            staticVariable = 10;
            staticMethod();
        }
    
        void instanceMethod() { // 实例方法
            // 实例方法可以访问静态成员和实例成员
            staticVariable = 20;
            instanceVariable = 30;
            staticMethod();
            instanceMethod();
        }
    
        public static void main(String[] args) {
            // 静态方法可以直接通过类名访问静态成员
            MyClass.staticVariable = 40;
            MyClass.staticMethod();
    
            // 实例方法和实例变量需要通过对象实例访问
            MyClass obj = new MyClass();
            obj.instanceVariable = 50;
            obj.instanceMethod();
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值