看看这个例子: class Man{ public static int sum=0; public String name; public Man(String name){ this.name=name; sum++; } } public class Test{ public static void man(String arg[]){ System.out.println("现有员工:"+Man.sum+"人"); Man a1=new Man("a1"); Man a2=new Man("a2"); System.out.println("现有员工:"+Man.sum+"人"); } }
更具具体情况而定!楼上的Man a1=new Man("a1"); Man a2=new Man("a2"); 是怎么来的?
class Man{
public static int sum=0;
public String name;
public Man(String name){
this.name=name;
sum++;
}
}
public class Test{
public static void man(String arg[]){
System.out.println("现有员工:"+Man.sum+"人");
Man a1=new Man("a1");
Man a2=new Man("a2");
System.out.println("现有员工:"+Man.sum+"人");
}
}
Man a2=new Man("a2");
是怎么来的?
非静态方法里面定义的是类里面不同对象不同的属性和动作。
不过更多时候,我跟愿意,遵循这样的考虑:如果类方法中,如果类的方法没有与其他的变量共享数据,就可以考虑把它定义为static,