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

希望堆楼主有帮助,谢谢!
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com