当前位置: 技术问答>java相关
什么时候应该用static方法,欢迎大家讨论
来源: 互联网 发布时间:2015-09-16
本文导语: 什么时候应该用static方法,欢迎大家讨论 使用static方法有什么优点以及缺点? | 小弟谈点愚见,静态方法占用的存储空间小,因为无论多少对象访问静态方法,实际上都只是最开始创建的静...
什么时候应该用static方法,欢迎大家讨论
使用static方法有什么优点以及缺点?
使用static方法有什么优点以及缺点?
|
小弟谈点愚见,静态方法占用的存储空间小,因为无论多少对象访问静态方法,实际上都只是最开始创建的静态方法所在的类的那个实例,不用创建新的对象。因此如果是比较通用的方法,最好用静态方法,比如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");
}
}
小弟说的不好,希望起到抛砖引玉的作用
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");
}
}
小弟说的不好,希望起到抛砖引玉的作用
|
static方法的内容是唯一的,无论产生多少的对象,内容始终不变,从这个意义上说,它与类的存在同级别,因此可以直接使用类名调用static方法。同时该方法只能使用同为static类型的数据,比较节省存储空间,这也算是一个优点吧。
|
static方法可以在类没有被实例化之前被调用,一般用做库函数.
如java.Math里的方法大多是static: max(), abs()等
我认为这样做有点象c++力的全局函数,虽然不是很oo,但还是很方便和符合逻辑的
如java.Math里的方法大多是static: max(), abs()等
我认为这样做有点象c++力的全局函数,虽然不是很oo,但还是很方便和符合逻辑的
|
觉得“我要申请”和我的看法比较相近
和C++对比起来,静态方法就是全局函数,静态变量就是全局变量
(为什么总是长不大) 说得我也同意
和C++对比起来,静态方法就是全局函数,静态变量就是全局变量
(为什么总是长不大) 说得我也同意
|
1、当你不想创建对象就需要调用类的方法,或访问类的变量的时候
2、当你的变量只想保存一个值,并且这个值会一直保留的时候
2、当你的变量只想保存一个值,并且这个值会一直保留的时候
|
个人认为static最常用在两个方面:
1.一些工具类的方法
2.需要获得单一实例的类中
1.一些工具类的方法
2.需要获得单一实例的类中