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

类变量也叫静态变量,也就是在变量前加了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类,但是它们的同名非静态成员变量在内存中占用的空间是不同的。 
而静态成员变量也就是类变量不同。所有的实例对象都共用一个类变量,内存中只有一处空间是放这个类变量值的。因此,如果一个对象把类变量值改了,另外一个对象再取类变量值就是改过之后的了。

时间: 2024-10-27 08:20:54

类变量和实例变量的区别是什么?的相关文章

python——实例方法、静态方法、类方法、类变量和实例变量浅析

概述: 实例方法就是类的实例能够使用的方法. 静态方法是一种普通函数,就位于类定义的命名空间中,它不会对任何实例类型进行操作.使用装饰器@staticmethod定义静态方法.类对象和实例都可调用静态方法. 类方法是将类本身作为对象进行操作的方法.类方法使用@classmethod装饰器定义,其第一个参数是类,约定写为cls.类对象和实例都可以调用类方法. super用来执行父类中的函数. 类变量定义在类的定义之后,实例变量则是以为self.开头. 如何调用父类的构造函数:子类(派生类)并不会自

变量:类变量,实例变量

1. 分类 分为类变量(静态变量.全局变量).实例变量.局部变量.其中静态变量.实例变量的区别是是否被static修饰 2. 类变量与实例变量在内存和调用上的区别 (1)调用:类变量是用"类名.变量名"格式来调用,实例变量通过"对象名.变量名"格式来调用 (2)内存: 类变量在类加载的时候就被初始化,而实例变量在对象new 出来后初始化. 类变量单独划分一块内存区域,独立于该类的任何对象.也就是说,不依赖于特定的实例,被类的所有实例共享: 实例变量在对象new出来后

python中的实例方法、静态方法、类方法、类变量和实例变量

http://www.jb51.net/article/49402.htm 注:使用的是Python2.7. 一.实例方法 实例方法就是类的实例能够使用的方法.如下: 复制代码 代码如下: class Foo:    def __init__(self, name):        self.name = name    def hi(self):        print self.name if __name__ == '__main__':    foo01 = Foo('letian')

Java中静态变量(类变量)、实例变量、局部变量和成员变量

导读 学习Java的过程中,一开始很容易被这些各种变量绕晕,这篇博客主要介绍了这几种变量之间的关系和区别. 例程 package com.cunyu.demo public class Demo { private String name; //成员变量.实例变量 private int age; //成员变量.实例变量 private int ID; //成员变量.实例变量 public static final String school = "卡塞尔学院"; //成员变量.静态变

类变量和实例变量的区别

1.简介:       1.类变量也叫静态变量,也就是在变量前加了static 的变量:       2.实例变量也叫对象变量,即没加static 的变量: 区别在于:类变量和实例变量的区别在于:类变量是所有对象共有,其中一个对象将它值改变,其他对象得到的就是改变后的结果:而实例变量则属对象私有,某一个对象将其值改变,不影响其他对象: 例: 1 public class A{ 2 static int a = 0; //类变量 3 private int b = 0; //实力变量 4 } 5

怎么区分类变量和实例变量?

# -*- coding: utf-8 -*- #python 27 #xiaodeng #怎么区分类变量和实例变量? #实例变量:在变量前面添加了self,就是实例变量,比如:self.name(完整定义为:属于实例私有,对实例变量的操作不会影响到其他的实例对象) #类变量:不添加前缀self,就是类变量(完整定义为:被该类的所有实例可以共享的变量,如果某个实例修改了该变量,这个变量可以被其他实例看到) class Person() : count = 0 def __init__(self,

【类不类二】Python的类变量与实例变量

在研究类的时候,难免会有很多疑问,C论坛和博客园高手如云(不知道是不是也美女如云), 搜到了这篇博文,是介绍Python的类变量和实例变量的 ! 刚好在下对self.***这种形式的实例变 量不是很理解,就拿来与诸君共享! C博客的大伽: http://blog.csdn.net/xxkkff/article/details/4396895 上一篇[类不类2]: http://www.cnblogs.com/Ruby517/p/5709558.html 一般的类定义是写成这种形式 class <

【JAVA&#183;转】类变量和实例变量的区别

类变量和实例变量的区别 类变量也叫静态变量,也就是在变量前加了static 的变量:实例变量也叫对象变量,即没加static 的变量:区别在于:    类变量和实例变量的区别在于:类变量是所有对象共有,其中一个对象将它值改变,其他对象得到的就是改变后的结果:而实例变量则属对象私有,某一个对象将其值改变,不影响其他对象:例:public class A{    static  int a = 0; //类变量    private int b = 0; //实力变量} public class B

类变量,实例变量

1 class a(): 2 name="11"#类变量 3 global name1#类中的全局变量 4 name1 = "22" 5 def __init__(self): 6 print self.name #实例可以访问类变量 7 self.name = "33" 8 def do(self): 9 print self.name 10 print a.name 11 print name1 12 #print name #报错,全局变量