解释一下下面Java代码的运行过程?

 我来答
德艺双馨520920
2022-04-06 · TA获得超过653个赞
知道小有建树答主
回答量:798
采纳率:92%
帮助的人:246万
展开全部

你好,提问者:

首先此代码编译不通过,原因: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);
}
}

zhongtyler
2022-04-06 · TA获得超过4408个赞
知道大有可为答主
回答量:4384
采纳率:79%
帮助的人:902万
展开全部
代码错的吧,至少Class的名字要叫Count
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式