小弟谈点愚见,静态方法占用的存储空间小,因为无论多少对象访问静态方法,实际上都只是最开始创建的静态方法所在的类的那个实例,不用创建新的对象。因此如果是比较通用的方法,最好用静态方法,比如DriverManager.getConnection()方法,其次如果不想让其他对象构造某个对象也可以使用静态方法,如 Class a { private a(){} public static a getA() { return new a(); } } 这样保证其他任何对象不能访问构造函数,当然如果构造函数中有自变量这种方式就更有意义一些,也就是说,如果想使用该对象,必须按照该对象的特定的方式进行构造,如下: Class a { String b; private a(String b) { this.b=b; } public static a getA() { return new a("a String"); } } 小弟说的不好,希望起到抛砖引玉的作用
1.一些工具类的方法
2.需要获得单一实例的类中
Class a
{
private a(){}
public static a getA()
{
return new a();
}
}
这样保证其他任何对象不能访问构造函数,当然如果构造函数中有自变量这种方式就更有意义一些,也就是说,如果想使用该对象,必须按照该对象的特定的方式进行构造,如下:
Class a
{
String b;
private a(String b)
{
this.b=b;
}
public static a getA()
{
return new a("a String");
}
}
小弟说的不好,希望起到抛砖引玉的作用
如java.Math里的方法大多是static: max(), abs()等
我认为这样做有点象c++力的全局函数,虽然不是很oo,但还是很方便和符合逻辑的