实例变量和类变量

本文详细解释了Java中实例变量与类变量的区别,包括它们的定义方式、内存分配位置及初始化特性。通过具体示例展示了如何访问和修改这两类变量。
实例变量(instance variable),我们在类内部,方法体外部,用(或不用)private/protected/public修饰定义(而且没有static修饰符)的变量称为
实例变量,即这些变量存放在这个类的每个对象的内存空间中,他们之间互不
影响(即对其中一个对象的实例变量进行修改不会影响到其他的实例变量的值)

实例变量在对象被创建之后初始化为其缺省值
1.int/short/char/long/byte初始值为0
2.boolean初始值为false
3.float/double初始值为0.0
4.所有引用类型的初始值为null
*,局部变量是没有初始值的

类变量(class variable),又称静态变量,加上static修饰符修饰的成员变量称为类变量
1.使用类变量的时候用"类名.变量名"来访问
2.类变量在内存中跟类在一起,所有对于一个类变量只有"一份"(相对于实例变量,每个对象都有它自己的实例变量值)
3.类变量也是有初始值的,它的初始值跟实例变量一样

package cn.com.wqh;

public class Static01 {
//类变量
private static int minValue=20;
//实例变量
private int maxValue;
//类变量
public static int pubStaticValue;
//实例变量
public int pubInstanceValue;
public static int getMinValue() {
return minValue;
}

public static void setMinValue(int minValue) {
//使用类变量的时候用"类名.变量名"来访问
Static01.minValue = minValue;
}
public int getMaxValue() {
return maxValue;
}
public void setMaxValue(int maxValue) {
this.maxValue = maxValue;
}

}


package cn.com.client;

import cn.com.wqh.Static01;

public class StaticTest {
public static void main(String[] args) {
System.out.println(Static01.pubStaticValue);
// System.out.println(Static01.pubInstanceValue);
Static01 s1 = new Static01();
Static01 s2 = new Static01();
System.out.println(s1.getMinValue());
System.out.println(s1.getMaxValue());
System.out.println(s2.getMinValue());
System.out.println(s2.getMaxValue());
s1.setMaxValue(100);
s1.setMinValue(10);
System.out.println(s1.getMinValue());
System.out.println(s1.getMaxValue());
System.out.println(s2.getMinValue());
System.out.println(s2.getMaxValue());
s2.setMaxValue(200);
s2.setMinValue(0);
System.out.println(s1.getMinValue());
System.out.println(s1.getMaxValue());
System.out.println(s2.getMinValue());
System.out.println(s2.getMaxValue());

}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值