解释一下下面Java代码的运行过程?
你好,提问者:
首先此代码编译不通过,原因:main方法是静态的,不能调用非静态方法,因此
Coun c1=new Coun();//调Coun方法是报错的。如图1:
若Coun不是普通方法,那就是构造方法,需要讲类名跟构造方法,书写一致。如图2:
public class Coun {
int s;
static int c;
public static void main(String[] args) {
Coun c1=new Coun(); //此处走往c:1,s:1
Coun c2=new Coun(); //此处走完c:2,s:2
System.out.println(c1.s);
System.out.println(c1.c);//故有问题的在此处,此处c1.c为2,是因为c使用了static修饰
System.out.println(c2.s);
System.out.println(c2.c);
}
public Coun(){
System.out.println("1111111");
c++;
s = c;
}
int getS(){
return s;
}
int getC(){
return c;
}
}
结果:
1111111
1111111
1
2
2
2
若解决了你的问题,请采纳,若有疑问,请提问,谢谢!
如果不使用类的构造方法该怎么写
你好,提问者:
因为不知道你原本的代码应该是什么样子的,我只能按我自己的调整了下代码。首先你要需要了解的应该是static这个单词的作用:静态的。静态变量,是在类加载前先加载的。静态方法不可引用非静态的变量。修改如下:
public class Test {
static int c =0 ;
public static void main(String[] args) {
System.out.println("第一次");
Coun();
System.out.println("第二次");
Coun();
}
static void Coun(){
int s ;
c++;
System.out.println(c);
s = c;
System.out.println(s);
}
}