为什么java有些类的创建不用new而是调用它自己的一个方法
为什么java有些类的创建不用new而是调用它自己的一个静态方法,譬如Toolkit kit=Toolkit.getDefaultToolkit()。java为什么要这么做?? 问题点数:20、回复次数:21Top
1 楼andyjt()回复于 2006-03-05 10:13:46 得分 2
返回类型是类名本身
对象已经在类里面创建,并且构造函数是private,外面不能创建对象,只能调用内部方法static
java单态模式
Top
2 楼Paripatetic(逍遥)回复于 2006-03-05 10:16:13 得分 2
有些类实例化需要一些参数,但程序员无法得到
只能用这种方法来取得实例Top
3 楼zx2002027(http://www.netyi.net/in.asp?id=zx2002027)回复于 2006-03-05 10:26:17 得分 2
隐藏构造函数,阻止类的使用者直接调用构造函数。Top
4 楼universe01(未知软体)回复于 2006-03-05 10:45:49 得分 0
markTop
5 楼dewdrop(白露)回复于 2006-03-05 12:22:59 得分 2
有的情况是singleton模式
为了一个class只对应着一个instance,也是要使constructor成为private
而public一个返回instance的functionTop
6 楼sportboys(多动男孩)回复于 2006-03-05 13:28:26 得分 1
this class doesn't want the client to create objects by itself, instead the class itself will supply client an instance by its static method.Top
7 楼bill_wwb()回复于 2006-03-05 13:48:39 得分 0
静态的类可以直接调用方法,不需要实例化。Top
8 楼superman421(38度的雪)回复于 2006-03-05 14:17:47 得分 0
很简单,这样做主要是不想你new对象。对象由类自身维护Top
9 楼liangjingbo(花落孤独)回复于 2006-03-05 14:24:49 得分 0
有时,class 就是这样用,但是这样,那个静态,方法里也有new ?
是不是啊?Top
10 楼superman421(38度的雪)回复于 2006-03-05 17:31:31 得分 0
当然有new,不然对象怎么出来!至少要new一次!或者至少要动态调用构造方法一次Top
11 楼xiaobaolove(紫色太阳)回复于 2006-03-05 18:40:02 得分 0
单子模式Top
12 楼Polarislee(北极星)(无房无车,飘在北京)回复于 2006-03-05 18:49:52 得分 2
建议楼主去察看设计模式中的创建模式部分,主要是:
工厂方法(Factory Method)
抽象工厂(Abstract Factory)Top
13 楼dlxu(脱离纯粹Coding阶段)回复于 2006-03-06 09:03:07 得分 0
一个简单的工厂模式Top
14 楼xqs2113(浪子天空)回复于 2006-03-06 09:10:57 得分 0
学习....Top
15 楼wanchengpeng(一米鸟)回复于 2006-03-06 10:24:15 得分 0
应该是单例模式或多例模式,隐藏构造函数,阻止类的使用者直接调用构造函数,方便对该类的对象进行直接管理。Top
16 楼foxty(狐狸糊涂)回复于 2006-03-06 15:06:36 得分 2
感觉很多都答不对文呢。
我想楼住应该是搞清楚类方法和实例方法的区别.类方法是不需要将类实例化后就可以直接使用的。实例方法是必须将类实例化以后才能使用的。相当于一种是class类()方法,一种是instance(对象)方法。`Top
17 楼aywrenyue(基本功修炼中……)回复于 2006-03-06 15:36:43 得分 0
对象被隐藏,这样不能同时创建多个对象!Top
18 楼jeffaple(坤)回复于 2006-03-06 15:48:49 得分 2
为什么java有些类的创建不用new而是调用它自己的一个方法?
effective java 看过吗,里面讲的不错,
是用new还是用静态工厂,都有不同适用条件的。。Top
19 楼bigdogyang(努力学JAVA)回复于 2006-03-06 18:14:27 得分 3
工厂模式的使用,目的是避免生成多个类的实例对象,另外还有一个目的是集中控制类的构造。Top
20 楼filippo_le(命--(天晓得我是哪个))回复于 2006-03-06 18:21:25 得分 2
看看模式,有单例等多中可能,目的是不提供产生同一个类的多个实例Top
21 楼ligbook(bibi)回复于 2006-03-09 21:54:29 得分 0
谢谢各位朋友的解答,我自己正在根据各位的提示找一些资料书看。我想我对java机制还不够了解,我会努力的,谢谢各位!!Top




