类变量和实例变量的区别是什么?

如题所述

类变量和实例变量的区别:

1、实例变量在类中声明,但在方法,构造函数或任何块之外。类变量(也称为静态变量)在

类中使用static关键字声明,但在方法,构造函数或块之外。

2、使用关键字“new”创建对象时会创建实例变量,并在销毁对象时销毁。程序启动时会创

建静态变量,程序停止时会生成静态变量。

3、可以通过调用类中的变量名来直接访问实例变量。但是,在静态方法中(当实例变量具有

可访问性时),应使用完全限定名称调用它们。可以通过使用类名ClassName.VariableName

调用来访问静态变量。

4、实例变量包含必须由多个方法,构造函数或块引用的值,或者必须在整个类中存在的对象

状态的基本部分。每个类只有一个每个类变量的副本,无论从中创建多少个对象。

实例演示代码:

public class VariableExample{
int myVariable;
static int data = 30;

public static void main(String args[]){
VariableExample obj = new VariableExample();

System.out.println("Value of instance variable: "+obj.myVariable);
System.out.println("Value of static variable: "+VariableExample.data);
}}

运行结果:

Value of instance variable: 0
Value of static variable: 30

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-10-10
类变量也叫静态变量,也就是在变量前加了static 的变量;
实例变量也叫对象变量,即没加static 的变量;区别在于:类变量和实例变量的区别在于:类变量是所有对象共有,其中一个对象将它值改变,其他对象得到的就是改变后的结果;而实例变量则属对象私有,某一个对象将其值改变,不影响其他对象;例:public class A{
static int a = 0; //类变量
private 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类,但是它们的同名非静态成员变量在内存中占用的空间是不同的。
而静态成员变量也就是类变量不同。所有的实例对象都共用一个类变量,内存中只有一处空间是放这个类变量值的。因此,如果一个对象把类变量值改了,另外一个对象再取类变量值就是改过之后的了。本回答被提问者采纳
第2个回答  2018-08-01
1、类中的属性包括数据成员和函数成员,函数成员可以调用类的所有数据成员(无论公有,或私有)。
2、实例化对象只能调用类的公有的数据成员或公有的函数成员。本回答被网友采纳

类变量和实例变量的区别是什么?
类变量和实例变量的区别:1、实例变量在类中声明,但在方法,构造函数或任何块之外。类变量(也称为静态变量)在 类中使用static关键字声明,但在方法,构造函数或块之外。2、使用关键字“new”创建对象时会创建实例变量,并在销毁对象时销毁。程序启动时会创 建静态变量,程序停止时会生成静态变量。3...

类变量和实例变量区别
1、是类变量是所有对象共有,其中一个对象将它值改变,其他对象得到的就是改变后的结果。2、而实例变量则属对象私有,某一个对象将其值改变,不影响其他对象。3、类变量是属于是所有对象的,用实例变量是属于某个对象的,类变量也叫静态变量,不需要通过创建实例就可以调用。4、实例变量需要通过对象来...

类变量和实例变量区别
7. 类变量可以通过对象名或者类名直接访问。而实例变量只能通过对象名访问,并且每个对象的实例变量是独立的,修改一个对象的实例变量不会影响其他对象的实例变量。

Python里类变量和实例变量的区别
其实,从名字就能看出来,Python的类变量和实例变量的区别:类变量:是可在类的所有实例之间共享的值(也就是说,它们不是单独分配给每个实例的)。例如下例中,num_of_instance 就是类变量,用于跟踪存在着多少个Test 的实例。实例变量:实例化之后,每个实例单独拥有的变量。[python] view plain copy...

类变量和实例变量的区别是什么?
类变量也叫静态变量,也就是在变量前加了static 的变量;实例变量也叫对象变量,即没加static 的变量;区别在于:类变量和实例变量的区别在于:类变量是所有对象共有,其中一个对象将它值改变,其他对象得到的就是改变后的结果;而实例变量则属对象私有,某一个对象将其值改变,不影响...

本地 和 实例 变量之间有什么区别
类变量是指一个类的变量,通常为静态变量,而实例变量通常是动态的 类变量和实例变量的区别在于:类变量是所有对象共有,其中一个对象将它值改变,其他对象得到的就是改变后的结果;而实例变量则属对象私有,某一个对象将其值改变,不影响其他对象。类变量是公共变量。

...类变量,实例变量,局部变量到底有啥区别 ? 在什么场景下使用,一文详 ...
在Python编程中,变量在类中主要分为三类:类变量,实例变量和局部变量。每种变量根据使用场景和目的不同,有其特定的作用和定义方式。实例变量,如上代码示例所示,在构造方法中声明,如self.radius。此类变量在后续方法中可被调用,但不同实例的值会根据传入的不同参数而改变,说明每个实例对象可以独立...

java中类变量和实例变量的实质区别?
类变量或说静态变量跟实例变量是不一样的,不管为一个类创建了多少个对象,系统只为每个类变量分配一次存储空间。系统为类变量分配的内存是在执行main方法时马克-to-win, 就是在程序最最开始的时候(见下面StaticDemo的例子)。所有的对象共享了类变量。可以通过对象或者通过类本身来访问类变量。Static ...

(Java)比较实例变量与类变量有什么不同?解释变量的含义?
类变量是所有对象共有,其中一个对象将它值改变,其他对象得到的就是改变后的结果;而实例变量则属对象私有,某一个对象将其值改变,不影响其他对象;实例变量是类实例化后,系统为其创建的一个类的实例变量的拷贝,即一个实例拥有一个实例变量。类变量则是用static声明,系统为每个类变量分配一次存储...

python class详解
区别在于:类变量和实例变量的区别在于:类变量是所有对象共有,其中一个对象将其值改变,其他对象得到的就是改变后的结果;而实例变量属于对象私有,某一个对象将其值改变,不影响其他对象;调用属性调用方法 注意:类里面的变量称之为属性,类里面的函数称之为方法 self的解释:方法里面的self代表的是...

相似回答