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();