黑马程序员技术交流社区

标题: 关于静态实例和静态变量的区别 [打印本页]

作者: 罗力    时间: 2012-11-2 12:36
标题: 关于静态实例和静态变量的区别
有的类里面以静态实例作为成员变量 ,有的用基本数据类型作为静态成员变量,他们的区别什么?
作者: 朱宏青    时间: 2012-11-2 12:48
静态最大的功能在于全局调用:
比如我写了一个test class,开头就定义了一个static,那么这个static在这个class下面所有的方法里都可以调用,并且进行修改的话是全局的,而不是只在当前方法下有效;
而单独定义的数据类型就不行了,并且最主要的还是节省空间 -- 一个经常要用到的数据,最好还是定义一个static单独存放,方便查错也方便修改。

单线程数据另谈。
作者: 蒋欣琦    时间: 2012-11-2 12:55
类变量也叫静态变量,也就是在变量前加了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变量
    }
}
作者: 奋斗的青春    时间: 2012-11-2 13:03
java变量分为实例变量和静态变量
方法分为实例方法和静态方法



class Example{

     int data;//定义实例变量,也叫成员变量

     public void method(){     //实例方法,也叫成员方法

        .....

     }

     public static int count = 0;//定义静变量

     public static func(){     //静态方法

          ......

  }

public void static main(String arg[]){

   Example e = new Example();//实例化一个对象

   e.data = 0;//若要调用实例变量,则必须通过对象e来调用

   Example.count++;//要调用静态变量,则在这里直接用类名.静态变量调用

//同样,实例方法和静态方法也是如此

}

}

如果要在其它类中调用实例变量,则用 类.对象.实例变量,(如果实例变量是public)

若调用静态方法,用 类.方法 调用。

实例变量和实例方法是 对象的属性,

而静态变量和静态方法是 类的属性。

作者: 黑马杨锦喜    时间: 2012-11-2 13:56
其实,我没看懂你想问什么,不知是不是想问  静态变量和实例变量?

静态变量又称为类变量;
实例变量就是一般的成员变量,即实例成员。

静态变量不用实例化就可以直接使用,一般用于共享所分配的内存的;
而每个对象的实例变量都分配内存,不同的实例变量是不同的。需要实例化才能使用。




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