问题描述
- 为什么ECLIPSE中不能定义时赋值
-
package 用static输出对象的个数; class A { private static int cnt=0; public void f() { cnt++; } static int out(int i) { return cnt; } } public class 用static输出对象的个数 { public static void main(String[] args) { int i; A aa1=new A(); A aa2=new A(); i=A.out(1); System.out.printf("%d",A.out(1)); } }
为什么这样A aa1=new A();定义时,不会从类型中找到无参数的方法f(),从而能输出对象的个数(cnt),是mars的eclipse
解决方案
class A
{
private static int cnt=0;
public void f()
{
cnt++;
}
static int out(int i)
{
return cnt;
}
}
public class Main {
public static void main(String[] args)
{
int i;
A aa1=new A();
A aa2=new A();
i=A.out(1);
System.out.println(A.out(1));
}
}
我跑了下,可以的
解决方案二:
感觉代码没问题,你重新编译下载试试。
解决方案三:
A aa1=new A();
aa1.f();
这个不可以么?重新编译下。
解决方案四:
A.f()要求f是静态的,加上static
解决方案五:
i=A.out(1);
里面的A应该是实例化的对象,你改为aa1或aa2
class A
{
private static int cnt=0;
public A() {
cnt++;
}
public void f()
{
cnt++;
}
static int out(int i)
{
return cnt;
}
}
public class Main {
public static void main(String[] args)
{
int i;
A aa1=new A();
A aa2=new A();
i=A.out(1);
System.out.println(A.out(1));
}
}
解决方案七:
A aa1=new A();
aa1.f();
时间: 2024-09-23 21:54:38