zoukankan      html  css  js  c++  java
  • javase(静态变量和实例变量的区别)

    1、语法定义上的区别:

    静态变量:需要加static关键字

    实例变量:不需要加static关键字修饰

    2、程序运行时的区别:

    静态变量:静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,静态变量可以直接用类名调用。

    实例变量:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。

    例如:

    在StaticDemo类中定义一个static类型的成员变量:

    public class StaticDemo {
    public static int a=1;
    }

    创建测试类:

    复制代码
    public class Test {
        public static void main(String[] args) {
            StaticDemo ad1 = new StaticDemo();
            ad1.a = 100;
            System.out.println(ad1.a);
            StaticDemo ad2 = new StaticDemo();
            System.out.println(ad2.a);
    
        }
    
    }
    复制代码

    两次输出的值都为100,改变一个对象的值,另外一个对象的值也跟着改变。

    静态变量是被static修饰符修饰的变量,也称为类变量,它属于类,不属于类的任何一个对象,一个类不管创建多少个对象,静态变量在内存中有且仅有一个拷贝;实例变量必须依存于某一实例,需要先创建对象然后通过对象才能访问到它。静态变量可以实现让多个对象共享内存。

    3、静态不能访问非静态变量和方法(类的非静态成员不存在的时候,静态成员已经存在了)

    4、static关键字的好处

    (1)不用创建对象,也能使用类中的属性和方法;

    (2)效率高;不用多次占用内存。

  • 相关阅读:
    洛谷 P1850 换教室(期望dp)
    简单异或 && 洛谷 P1469 找筷子 && 洛谷 P3908 数列之异或
    2020 CSP-J复赛题解
    2018 ICPC 南京 D Country Meow(模拟退火|三分)
    佩尔方程
    块速幂/光速幂
    1436F
    反Nim游戏
    P1447 [NOI2010]能量采集(莫比乌斯反演)
    P3768 简单的数学题 (莫比乌斯反演+杜教筛)
  • 原文地址:https://www.cnblogs.com/zhai1997/p/12404496.html
Copyright © 2011-2022 走看看