static变量问题
发布网友
发布时间:2022-04-20 09:57
我来回答
共2个回答
热心网友
时间:2022-07-12 06:00
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可以直接通过类名来调用,无需再生成对象。
热心网友
时间:2022-07-12 06:00
楼主试试看这样来理解,我们如何去定义一个变量是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());
}
}
Circles这个类存储了一大堆园,其中每个园都不一样,这些半径、坐标我们都设置成non-static,我们使用count来统计一共存储了多少格园,这个再每一个园中都是相等的,所以这个变量采用了static
希望堆楼主有帮助,谢谢!