static变量问题

来源:百度知道 编辑:UC知道 时间:2024/06/10 00:58:49
static 变量的内存单元在程序运行期间都还是被其他变量战用;无static修饰的变量内存单元在被定义的类外,即可被其他的变量占用(何意?用例子证明)
static 变量的内存单元在程序运行期间都还是被其他变量战用;无static修饰的变量内存单元在被定义的类外,即可被其他的变量占用
=========
"无static修饰的变量内存单元在被定义的类外",其中的类外是什么意思,你们举的例子都有是在一个类里好像不合问题吧

class A {
int i;
A(int i) {
this.i = i;
}
}

A a1 = new A(1);
A a2 = new A(2);
这样,a1和a2的i值分别为1和2。

倘若是static int i的话,那么i的值就唯一了,将是最后一次赋值时的量。而且static可以直接通过类名来调用,无需再生成对象。

楼主试试看这样来理解,我们如何去定义一个变量是static还是non-static,其中有一个法则:如果这个变量在你的每一个对象中的值都一样,那么请用static,反之则用non-static。使用了static以后这个变量前就不需要加this了。

下面我写个例子:

public class Circles {
public static int count=0;
private int x,y;
private double radius;
Circles(int x,int y,double radius) {
this.x=x;
this.y=y;
this.radius=radius;
count++;
// Could not use this.count;
}
public static int getCount() {
return count;
}
public static void main(String[] args){
for(int i=0;i<10;i++)
new Circles(10,10,20);
System.out.println("How many circles is created?");
System.out.println(Circles.getCount());
}
}

Ci