大家来帮忙一下一题
代码如下:class Count{
public int num;
Count(int num){
this.num=num;
}
}
public class test1{
public static void main(String[]args){
int times=0;
static void increment(Count a,int times){//静态方法
count++;//此中的count是什么
times++;
}
Count count1=new Count(0);
for(int i=0;i<50;i++)
increment(count1,times);
System.out.println("count1 is "+count1.num);
System.out.println("times is"+times);
}
}
----------------解决方案--------------------------------------------------------
你这个程序根本不可能运行,我也不知道你那个count是什么来的,又没有定义,肯定会报错,而且,好像不能在静态方法里面再定义静态方法,所以,应该把increment放在main的外面,这样,你得到的结构就会是count=0和tiam=0,因为你每次循环的时候,都会调用increment(count1,times),而count1里面的num每次都是0,所以count=0,而time不是静态变量,所以也不会改变!
----------------解决方案--------------------------------------------------------
程序不能运行
----------------解决方案--------------------------------------------------------
还有,你static void increment(Count a,int times)里面有定义了一个times,与main函数里面的times是形参与实参的关系,不会改变times的值!
----------------解决方案--------------------------------------------------------
帮你修改了,可以运行
class Count {
public int num;
Count(int num) {
this.num = num;
}
}
public class Test1 {
static void increment(Count a, int times) {//静态方法放在main()外
a.num++;//count改成a.num
times++;
}
public static void main(String[] args) {
int times = 0;
Count count1 = new Count(0);
for (int i = 0; i < 50; i++) {
increment(count1, times);
}
System.out.println("count1 is " + count1.num);
System.out.println("times is" + times);
}
}
----------------解决方案--------------------------------------------------------
回复 5楼 lampeter123
5楼,你这样改还不行啊~~ times还是等于0,没意义~~~直接在外面定义一个static int times=0;然后调用方法的时候不用传times这个参数了!! ----------------解决方案--------------------------------------------------------
首先确保程序能运行,之后再修改它的功能。楼上说得没错,times改为静态的
----------------解决方案--------------------------------------------------------
1,静态方法放在main()外:这点我忽视了。
2,静态变量time没理解好。
----------------解决方案--------------------------------------------------------