类变量和实例变量的区别是什么?
来源:互联网 发布:ubuntu安装硬盘分区 编辑:程序博客网 时间:2024/05/16 11:44
类变量也叫静态变量,也就是在变量前加了static 的变量;
实例变量也叫对象变量,即没加static 的变量;
区别在于:
类变量和实例变量的区别在于:类变量是所有对象共有,其中一个对象将它值改变,其他对象得到的就是改变后的结果;而实例变量则属对象私有,某一个对象将其值改变,不影响其他对象;
例:
public class A{
public class B{
public void main (String[] args){
A a1 = new A();
A a2 = new A();
a1.a = 3; // 等同于 A.a = 3;
a1.b = 4 ;
System.out.println(a2.a); //结果为3
//类变量是针对所有对象的,所以a1改变a,a2的a也改变
System.out.println(a2.b); //结果为0
//实例只改变自身的,所以a1对象的b改变,不影响对象a2的b变量
}
实例变量也叫对象变量,即没加static 的变量;
区别在于:
类变量和实例变量的区别在于:类变量是所有对象共有,其中一个对象将它值改变,其他对象得到的就是改变后的结果;而实例变量则属对象私有,某一个对象将其值改变,不影响其他对象;
例:
public class A{
static int a = 0; //类变量
int b = 0; //实例变量
}public class B{
public void main (String[] args){
A a1 = new A();
A a2 = new A();
a1.a = 3; // 等同于 A.a = 3;
a1.b = 4 ;
System.out.println(a2.a); //结果为3
//类变量是针对所有对象的,所以a1改变a,a2的a也改变
System.out.println(a2.b); //结果为0
//实例只改变自身的,所以a1对象的b改变,不影响对象a2的b变量
}
}
类变量又叫静态成员变量,它不需要创建对象就可以已经在内存中存在了。
类就像一份说明书,说明这种类的实例对象的规格。而在创建实例对象的时候,内存中会为每一个实例对象的每一个非静态成员变量开辟一段内存空间,用来存储这个对象所有的非静态成员变量值。即使两个不同的实例对象是属于同一个class类,但是它们的同名非静态成员变量在内存中占用的空间是不同的。
而静态成员变量也就是类变量不同。所有的实例对象都共用一个类变量,内存中只有一处空间是放这个类变量值的。因此,如果一个对象把类变量值改了,另外一个对象再取类变量值就是改过之后的了。
阅读全文
0 0
- 类变量和实例变量的区别是什么?
- 类变量和实例变量的区别是什么?
- 类变量和实例变量的区别是什么?
- 类变量和实例变量的区别是什么?
- 类变量和实例变量的区别
- 类变量和实例变量的区别
- 类变量和实例变量的区别
- 类变量和实例变量的区别
- 实例变量和类变量的区别
- 类变量和实例变量的区别
- 成员变量:类变量和实例变量的区别
- (类变量)静态变量和实例变量的区别?
- 静态变量和实例变量的区别
- 静态变量和实例变量的区别?
- 静态变量和实例变量的区别?
- 静态变量和实例变量的区别?
- 静态变量和实例变量的区别
- 静态变量和实例变量的区别
- 读取联系人
- django 单元测试
- EvenBus使用方法
- 逻辑回归
- 弱监督语义分割--Weakly Supervised Semantic Segmentation using Web-Crawled Videos
- 类变量和实例变量的区别是什么?
- 奥威Power-BI 医药行业BI解决方案-门店客流量分析
- ARM NEON 编程简单入门1
- js问题总结
- 自动生成mybaist配置文件
- neo4j 的使用说明(一)
- GUI自动化测试的前途在哪里?
- 浅谈树的点分治
- 关于Evaluate的使用