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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 罗力 中级黑马   /  2012-11-2 12:36  /  1571 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

有的类里面以静态实例作为成员变量 ,有的用基本数据类型作为静态成员变量,他们的区别什么?

评分

参与人数 1技术分 +1 收起 理由
韩军博 + 1

查看全部评分

4 个回复

倒序浏览
静态最大的功能在于全局调用:
比如我写了一个test class,开头就定义了一个static,那么这个static在这个class下面所有的方法里都可以调用,并且进行修改的话是全局的,而不是只在当前方法下有效;
而单独定义的数据类型就不行了,并且最主要的还是节省空间 -- 一个经常要用到的数据,最好还是定义一个static单独存放,方便查错也方便修改。

单线程数据另谈。

评分

参与人数 1技术分 +1 收起 理由
韩军博 + 1

查看全部评分

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

评分

参与人数 1技术分 +1 收起 理由
韩军博 + 1

查看全部评分

回复 使用道具 举报
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)

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

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

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

评分

参与人数 1技术分 +1 收起 理由
韩军博 + 1

查看全部评分

回复 使用道具 举报
其实,我没看懂你想问什么,不知是不是想问  静态变量和实例变量?

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

静态变量不用实例化就可以直接使用,一般用于共享所分配的内存的;
而每个对象的实例变量都分配内存,不同的实例变量是不同的。需要实例化才能使用。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马