黑马程序员技术交流社区

标题: 类变量和 实例变量 [打印本页]

作者: lily    时间: 2011-10-9 13:44
标题: 类变量和 实例变量
类变量和实例变量有什么区别?请举例说明!
作者: 林国锋    时间: 2011-10-9 13:47
String str = "abc";  // 类变量
str = "xyz";  // 就是这样变

Student stu = new Student("黑马程序员"); // 实例变量

stu.setName = "itheima"; // 就是这样变
作者: 王春艳    时间: 2011-10-9 13:50
类变量也叫静态变量,就是我们加了static的变量   ,类变量是所有对象共有的,如果有一个对象把它的值改变了,那么其他对象再用它的时候得到的就是改变后的值;
实例变量就是没加static的变量   ,实例变量是对象私有的 ,所以也叫对象变量,如果一个对象把它的值改变了,不影响其他的对象
作者: 石宗银    时间: 2011-10-9 13:51
类成员,在类加载时,就初始化了, 可以不通过对象,直接用类名.属性或方法名调用
而实例成员,需要在初始化对象后,才能用对象.属性或方法名调用 。。
类成员中 不能调用 实例成员
作者: 李文肖    时间: 2011-10-9 13:54
类变量也叫静态变量,也就是在变量前加了static 的变量;
实例变量也叫对象变量,即没加static 的变量;
区别在于:
    类变量和实例变量的区别在于:类变量是所有对象共有,其中一个对象将它值改变,其他对象得到的就是改变后的结果;而实例变量则属对象私有,某一个对象将其值改变,不影响其他对象;
例:

class A{
    static  int a = 0; //类变量
    public int b = 0; //实力变量
}

public class Test{
    public static 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变量
    }
}
作者: 张雷    时间: 2011-10-9 14:10
类变量也叫静态变量,也就是在变量前加了static 的变量;
实例变量也叫对象变量,即没加static 的变量;
区别在于:
    类变量和实例变量的区别在于:类变量是所有对象共有,其中一个对象将它值改变,其他对象得到的就是改变后的结果;而实例变量则属对象私有,某一个对象将其值改变,不影响其他对象;
例:

class A{
    static  int a = 0; //类变量
    public int b = 0; //实力变量
}

public class Test{
    public static 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变量
    }
}
作者: 黄治文    时间: 2011-10-9 14:41
类变量也就是静态变量,用static关键字修饰,可直接使用类名访问,在内存中唯一,一个对象改变的它的值以后,所有的对象共享它的结果,其他的语言称之为公共变量
实例变量就是没有static修饰的,归实例对象私有,类实例化后再各个实例对象中值不共享,如
  1. public class Test {

  2.         /**
  3.          * @param args
  4.          */
  5.         public static void main(String[] args) throws Exception {
  6.                 // TODO Auto-generated method stub
  7.                 Example10 ex = new Example10();
  8.                 Example10 ex1 = new Example10();
  9.                 ex.number1 = ex.number1 + 10;
  10.                 ex1.number1 = ex1.number1 + 20;
  11.                 Example10.number = Example10.number + 10;
  12.                 Example10.number = Example10.number + 20;
  13.                 System.out.println(ex.number1);
  14.                 System.out.println(ex1.number1);
  15.                 System.out.println(Example10.number);
  16.         }
  17. }

  18. class Example10 {
  19.         public static int number = 50;
  20.         public int number1 = 50;
  21. }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2