java静态变量和实例变量的区别

Java中的静态变量属于类,由所有对象共享,修改会影响所有对象。实例变量则是每个对象独有的,修改只影响自身。静态变量可通过类名直接访问,实例变量需通过对象引用。静态变量在类加载时初始化,实例变量在创建对象时初始化。
摘要由CSDN通过智能技术生成

     Java 中的静态变量和实例变量的区别在于,静态变量属于类,只有一份,而实例变量属于对象,每个对象都有一份。因为静态变量只有一份,所以多个对象共享同一个静态变量,如果一个对象改变了这个静态变量的值,那么其他对象也会受到影响。而实例变量是每个对象独有的,它的值在不同对象之间是独立的,一个对象修改实例变量的值,不会影响其他对象的实例变量值。在访问静态变量时,可以直接通过类名访问,而在访问实例变量时,必须通过对象引用来访问。此外,静态变量在类加载时就被初始化,而实例变量在创建对象时被初始化。

public class Run {

    public static Integer VALUE = 0;

    public Integer LOCAl_VALUE = 0;

    public static void main(String[] str) {
        //演示用,多线程会存在并发问题
        Run.VALUE++;
        Run.VALUE++;
        Run.VALUE++;
        System.out.println("静态变量值" + Run.VALUE);
        //print 3   一个修改其它也会受到影响

        Run run = new Run();
        run.LOCAl_VALUE++;
        System.out.println("run成员变量值" + run.LOCAl_VALUE);
        //print 1  单独访问自己的成员变量,修改也仅对自己有效不影响其它对象

        Run run2 = new Run();
        run2.LOCAl_VALUE++;
        System.out.println("run1成员变量值" + run.LOCAl_VALUE);
        //print 1   单独访问自己的成员变量,修改也仅对自己有效不影响其它对象
    }

    public Integer getLOCAl_VALUE() {
        return LOCAl_VALUE;
    }

    public void setLOCAl_VALUE(Integer LOCAl_VALUE) {
        this.LOCAl_VALUE = LOCAl_VALUE;
    }

    在 Java 中,实例变量是指定义在类中的变量,也叫成员变量或属性。实例变量属于对象,每个对象都有一份,因此也称为对象变量。实例变量定义在类中,方法体外,可以通过对象引用来访问。实例变量的值对于每个对象都是独立的,一个对象修改实例变量的值,不会影响其他对象的实例变量值。

实例变量在创建对象时被初始化,如果没有显式初始化,则会使用默认值。数值类型的默认值为 0,布尔类型的默认值为 false,引用类型的默认值为 null。如果希望在定义实例变量时进行初始化,可以使用赋值语句或者构造方法进行初始化。如果希望在定义实例变量时进行初始化,可以使用赋值语句或者构造方法进行初始化。例如:

public class MyClass {
    // 定义实例变量x和y,它们的默认值为0
    int x;
    int y;

    // 定义带参数的构造方法,用于初始化x和y
    public MyClass(int x, int y) {
        this.x = x;
        this.y = y;
    }
}

在上面的例子中,定义了两个实例变量 x 和 y,它们的默认值为 0。同时定义了一个带参数的构造方法,用于初始化 x 和 y 的值。在创建 MyClass 对象时,可以调用这个构造方法来初始化 x 和 y。例如:

MyClass obj = new MyClass(10, 20);

这样,obj 对象的 x 和 y 分别被初始化为 10 和 20。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值