A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© lily 黑马帝   /  2011-10-9 13:44  /  2806 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

类变量也就是静态变量,用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. }
复制代码
回复 使用道具 举报
类变量也叫静态变量,也就是在变量前加了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变量
    }
}

评分

参与人数 1技术分 +2 收起 理由
admin + 2

查看全部评分

回复 使用道具 举报
类变量也叫静态变量,也就是在变量前加了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变量
    }
}

评分

参与人数 1技术分 +2 黑马币 +1 收起 理由
admin + 2 + 1 赞一个!

查看全部评分

回复 使用道具 举报
类成员,在类加载时,就初始化了, 可以不通过对象,直接用类名.属性或方法名调用
而实例成员,需要在初始化对象后,才能用对象.属性或方法名调用 。。
类成员中 不能调用 实例成员

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
类变量也叫静态变量,就是我们加了static的变量   ,类变量是所有对象共有的,如果有一个对象把它的值改变了,那么其他对象再用它的时候得到的就是改变后的值;
实例变量就是没加static的变量   ,实例变量是对象私有的 ,所以也叫对象变量,如果一个对象把它的值改变了,不影响其他的对象

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1 赞一个!

查看全部评分

回复 使用道具 举报
类变量和实例变量有什么区别?请举例说明!

6 个回复

倒序浏览
林国锋 黑马帝 2011-10-9 13:47:53
7#
String str = "abc";  // 类变量
str = "xyz";  // 就是这样变

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

stu.setName = "itheima"; // 就是这样变

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马