[求助]什么时候要用静态方法,什么时候不要用?

hooligan31000 2004-05-08 12:11:17
小弟现在搞不清楚,static方法何时用?

在java.util.Calendar包中有一段代码(为什么要用static,不用有什么区别?):

private static Calendar createCalendar(TimeZone zone,
Locale aLocale)
{
if (aLocale.getLanguage().compareTo("th") == 0) {
if (aLocale.getCountry().compareTo("TH") == 0) {
return new sun.util.BuddhistCalendar(zone, aLocale);
}
}

// else create the default calendar
return new GregorianCalendar(zone, aLocale);
}
...全文
160 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
rockaka 2004-05-08
  • 打赏
  • 举报
回复
可以代替c中的全局函数
jie015 2004-05-08
  • 打赏
  • 举报
回复
强!
紫黑蓝白 2004-05-08
  • 打赏
  • 举报
回复
class A{
int a=1;
static int b=1;
public void do1(){
}
public static void do2(){
}

}
class B{
public static void main(String[] args){
A aa=new A();
aa.a=2;
aa.do1();
aa.do2();//以上是一般的用法
-----------
A.do2();//可以不生成对象直接调do2();
A.do1();//这个就不可以通过编译。
A.b=2;// OK
A.a=2;//Not OK
}
}
//静态域只在类首次加载时初始化一次。
//静态方法里不能调用此类里的其它非静态的方法或属性
tiger_wkh52741 2004-05-08
  • 打赏
  • 举报
回复
例如private static Calendar createCalendar(TimeZone zone,
Locale aLocale)
这个方法在某个类中.....class X
这个时候你不需要实例化X这个类就可以
通过类直接调用static方法
这样:X.createCalendar()........就这样!
rombus 2004-05-08
  • 打赏
  • 举报
回复
static方法就是没有创建类对象也要执行,如果没有申明是static方法,那就只能被类的对象执行。
hooligan31000 2004-05-08
  • 打赏
  • 举报
回复
举个简单的例子?
紫黑蓝白 2004-05-08
  • 打赏
  • 举报
回复
这是个工厂方法。

声明为static可以在不生成类的实例的情况下直接调用一个类的static方法或属性。
算是工具类吧,呵呵。
cocosunshine 2004-05-08
  • 打赏
  • 举报
回复
静态域只在类首次加载时初始化一次。
静态方法里不能调用此类里的其它非静态的方法或属性
静态调非静态,实例化
其余直接调用。
iwhp 2004-05-08
  • 打赏
  • 举报
回复
要读一些常量或配置文件时
hooligan31000 2004-05-08
  • 打赏
  • 举报
回复
我的意思是:什么时候一定要用static方法?举个例子

62,616

社区成员

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

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