CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

为什么java有些类的创建不用new而是调用它自己的一个方法

楼主ligbook(bibi)2006-03-05 10:02:32 在 Java / J2SE / 基础类 提问

为什么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

相关问题

  • excel调用java类
  • 创建一个类多个Form调用
  • php如何调用java类?
  • java类构造器的调用时机?
  • JAVA中类的调用问题!
  • 怎么调用自定义的java类?
  • Dll 方面的用类,如何创建和动态调用
  • 200分送上,欢迎讨论用java调用vs.net所创建的web服务!
  • 类中调用
  • 类的调用

关键词

  • 函数
  • java
  • 模式
  • 调用
  • 类
  • 实例
  • 方法
  • 构造函数
  • 创建
  • 对象

得分解答快速导航

  • 帖主:ligbook
  • andyjt
  • Paripatetic
  • zx2002027
  • dewdrop
  • sportboys
  • Polarislee
  • foxty
  • jeffaple
  • bigdogyang
  • filippo_le

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo