java里静态方法在什么情况下使用,好处是什么?大家探讨

chenyumao 2005-01-14 02:39:08
class A(){
public static void do1(){}
public static String do2(){}
public void do3(){}
}
A.do1();A.do2();
A aa= new A()
aa.do3();
这么用的好处是什么,在什么情形下需要把方法设计成静态方法。

静态方法:所有占据一个内存

什么情形非的用静态方法的,什么情形下用静态方法比实例方法好??

...全文
6773 26 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
awers 2005-01-17
  • 打赏
  • 举报
回复
是用静态方法,还是用构造函数,在Effective java的Chapter 2就有很好的介绍,楼主可以去看看

结合我应用中的一些经验,我觉的在Control层应用比较多的方法,写成静态方法比较方便;

而静态方法不好的地方就是缺乏灵活性,在业务逻辑层,我曾经有几个方法因为写成了静态的,而造成一些逻辑实现上的麻烦

总之自己多写点东西,再配合Effective java看看,基本就清楚了

kingmaxno1 2005-01-17
  • 打赏
  • 举报
回复
静态方法:整个类所共有的东西,就像一个家族都姓一个姓,
实例方法:是类创建的对象特有的,就像你们家有多少钱,你叔叔家有多少钱,
如果你的方法要是共用的话,就用静态的方法,如:你想统计类创建了多少个对象之类的,还有一个种模式就是用静态方法的,好像是单例模式吧,记不清了,
gaoan 2005-01-17
  • 打赏
  • 举报
回复
关注。。。。。。。。。
dabo1980 2005-01-17
  • 打赏
  • 举报
回复
用static的方法、变量是静态的,是全局的,所有类共享的(这句话要看修饰符了)。
静态方法和变量可以直接通过类名来调用!
你什么时候想用,你就什么时候来用。
funcreal 2005-01-17
  • 打赏
  • 举报
回复
我觉得楼主基本功还不行呢,多谢点程序就知道了。给你举个简单的例子。

Integer类知道吧?int类型的包装类。
他有一个Integer.parseInt()方法。可以把String转化为int。他就是一个静态方法。因为这个方法不于任何整数相关。你当然可以写
Integer i = new Integer(1);
i.parseInt("1");
或者
Integer i = new Integer(2);
i.parseInt("1");
你觉得这样写合理吗?
应该是Integer.parseInt("1");吧!
据我所知,static是设计问题,跟内存没啥关系。
zoeg 2005-01-17
  • 打赏
  • 举报
回复
这个问题有什么好讨论的,几乎所有介绍java语法的书上都有提到,花半小时仔细看看就可以了!
chenyumao 2005-01-15
  • 打赏
  • 举报
回复
java里的main函数是static的,可里面也有实例方法(new 一个类,本类的忽略)。

请帮我,到底是什么咚咚,这个好难得说!!
chenyumao 2005-01-14
  • 打赏
  • 举报
回复
不是把,没人continue了?
chenyumao 2005-01-14
  • 打赏
  • 举报
回复
singedcat(以梦为马) 呵呵。友情up。
以梦为马 2005-01-14
  • 打赏
  • 举报
回复
静态方法 就是 全局方法!

友情up。
yzyronin 2005-01-14
  • 打赏
  • 举报
回复
学习中...
chenyumao 2005-01-14
  • 打赏
  • 举报
回复
换句话说,实例方法是用来打头阵的??
说错了,应该是,静态方法是用来打头阵的??
chenyumao 2005-01-14
  • 打赏
  • 举报
回复
wallance1979(wallance) :请在开发过程中慎用静态的方法,包括成员!!!
可一些项目已经用了,主要目的好像就是内存和时间问题
wallance1979 2005-01-14
  • 打赏
  • 举报
回复
请在开发过程中慎用静态的方法,包括成员!!!
chenyumao 2005-01-14
  • 打赏
  • 举报
回复
类似这个
class a{
private String do1(ObjBean objBean){
//from objBean to sql;
return sql;}
public static List dosql(ObjBean objBean){
String sql=this.do1(objBean);
return list;
}
}

哈,是不是还有一条规则,静态方法里面不能(某种意义上的不能)调用实例方法
换句话说,实例方法是用来打头阵的??
boneeater 2005-01-14
  • 打赏
  • 举报
回复
因为创建一个对象是极其耗费资源的,因此当一个方法具有比较强的公用性(在不同的场合被频繁使用)的时候,没有必要为了调用这个方法而重新再生成该类的实例,在这种情况下可以考虑使用类的静态方法.这是我的理解.希望能对chenyumao (毛毛) 有所帮助.......^_^
chenyumao 2005-01-14
  • 打赏
  • 举报
回复
那么方法与实例变量和类变量都无关(不用这些变量),补充=+方法
chenyumao 2005-01-14
  • 打赏
  • 举报
回复
wadsunglow(东) ,那么与实例变量和类变量都无关(不用这些变量),或者说方法只使用参数的情况下,就应该是静态方法?

对不起,近来,静态方法越想越糊涂了。
wadsunglow 2005-01-14
  • 打赏
  • 举报
回复
如:
class a{
int a;static int b;
void f(int x,int y)
{
a=x;b=y;//合法
...
}
static g(int z)
{
b=23;//合法
a=z;//非法
}
}
grapepaul 2005-01-14
  • 打赏
  • 举报
回复
好象静态方法就是随便用,直接用(瞎说啊)
加载更多回复(6)

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧