java中static的用法,谁能通俗地给我说说啊
答案:6 悬赏:0
解决时间 2021-12-16 05:05
- 提问者网友:伪情浪人
- 2021-12-15 10:37
java中static的用法,谁能通俗地给我说说啊
最佳答案
- 二级知识专家网友:深街酒徒
- 2021-12-15 11:33
看个简单的例子:
class Value {
static int c = 0;
static void inc() {
c++;
}
}
public class Count2 {
public static void prt(String s) {
System.out.print(s);
}
public static void main(String[] args) {
Value v1, v2;
v1 = new Value();
v2 = new Value();
prt("v1.c=" + v1.c + " v2.c=" + v2.c);
v1.inc();
prt(" v1.c=" + v1.c + " v2.c=" + v2.c);
}
}
执行了 v1 = new Value(); v2 = new Value();,c的值均为0;可以理解吧?
执行了 v1.inc(); 后,你可能想的是v1的C变成1了,但是别忘了,C是静态变量,所以不管是谁的C,都是1.所以输出结果是:v1.c=0 v2.c=0 v1.c=1 v2.c=1
但是,如果上面的C没有static修饰,那么结果就是v1.c=0 v2.c=0 v1.c=1 v2.c=0
我这样说你明白了吧
class Value {
static int c = 0;
static void inc() {
c++;
}
}
public class Count2 {
public static void prt(String s) {
System.out.print(s);
}
public static void main(String[] args) {
Value v1, v2;
v1 = new Value();
v2 = new Value();
prt("v1.c=" + v1.c + " v2.c=" + v2.c);
v1.inc();
prt(" v1.c=" + v1.c + " v2.c=" + v2.c);
}
}
执行了 v1 = new Value(); v2 = new Value();,c的值均为0;可以理解吧?
执行了 v1.inc(); 后,你可能想的是v1的C变成1了,但是别忘了,C是静态变量,所以不管是谁的C,都是1.所以输出结果是:v1.c=0 v2.c=0 v1.c=1 v2.c=1
但是,如果上面的C没有static修饰,那么结果就是v1.c=0 v2.c=0 v1.c=1 v2.c=0
我这样说你明白了吧
全部回答
- 1楼网友:蜜罐小熊
- 2021-12-15 15:59
顾名思义是静态变量,相当于c中的全局变量
- 2楼网友:最后战士
- 2021-12-15 14:39
类在实体化之前是不会被分配内存的,也就是不能运行。static可以让你的方法在它的类实体化之前就可以使用,比如在主类中。
- 3楼网友:你把微笑给了谁
- 2021-12-15 13:11
简单的说, 对于static的方法和变量,你可以直接用 类名.方法 或者 类名.变量 进行调用。
当然也可以用 new 类名().方法 或者 new 类名(). 变量 调用。
- 4楼网友:哭不代表软弱
- 2021-12-15 12:47
static是相对于类的变量,就是不用创建对象,就已经在内存中给static的变量分配了空间,和这个类创建的对象就没有关系了。调用的时候,用
类名.x来使用,也可以用对象名来使用。
- 5楼网友:厭世為王
- 2021-12-15 12:39
看个简单的例子:
class Value {
static int c = 0;
static void inc() {
c++;
}
}
public class Count2 {
public static void prt(String s) {
System.out.print(s);
}
public static void main(String[] args) {
Value v1, v2;
v1 = new Value();
v2 = new Value();
prt("v1.c=" + v1.c + " v2.c=" + v2.c);
v1.inc();
prt(" v1.c=" + v1.c + " v2.c=" + v2.c);
}
}
执行了 v1 = new Value(); v2 = new Value();,c的值均为0;可以理解吧
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯