大家好!
Thinking in Java 中文第四版
书第30页。
"2.7 你的第一个Java程序" 这句话上一自然段描述道:
和其他任何方法一样,static方法可以创建或使用与其类型相同的被命名对象,因此,static方法常常拿来做“牧羊人”的角色,负责看护与其隶属同一类型的实例群。小弟对于这句话有点不解,希望大家踊跃提出自己的想法。
在这先谢各位了!
Thinking in Java 中文第四版
书第30页。
"2.7 你的第一个Java程序" 这句话上一自然段描述道:
和其他任何方法一样,static方法可以创建或使用与其类型相同的被命名对象,因此,static方法常常拿来做“牧羊人”的角色,负责看护与其隶属同一类型的实例群。小弟对于这句话有点不解,希望大家踊跃提出自己的想法。
在这先谢各位了!
public class A {
private static int a;
public static int getA() {
return a;
} public static void setA(int a) {
A.a = a;
} public static void main(String[] arg) {
A a1 = new A();
a1.setA(3);
A a2 = new A();
a2.setA(4);
System.out.println("the value of a1 is " + a1.getA());
System.out.println("the value of a2 is " + a2.getA());
}}
这段话他的意思是 你可以通过static方法去管理对象(有些时候也可以通过对象方法去创建对象 这并不一定是错误的) static不一定是“牧羊人”的角色 因为static有些时候不是为了对象服务的 但是“牧羊人”和"羊"是有本质区别的 你不能将羊当做“牧羊人”人来用 反过来也是一样
Static作用于同属于一个类对象的多个实例的意思
第四版中确实没有,但咋第三版中却有,呵呵,原文这样讲:
Like any method, a static method can create or use named objects of its type, so a static method is often used as a “shepherd” for a flock of instances of its own type.