阳光VIP

少壮不努力,老大徒伤悲。平日弗用功,自到临期悔。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
上一页 1 ··· 70 71 72 73 74 75 76 77 78 ··· 139 下一页

2012年2月4日

摘要: 构造函数是java类的最传统创建方式,除此之外,我们还可以选择经典的设计模式,经典的创建型设计模式包含了四种,factory,abstract factory,singleton和prototype。另外,在java中还有一种经常使用的模式---静态工厂方法(我们可以认为这是创建型模式的一种新的补充)。 什么是静态工厂方法?其实很简单,也就是类的设计者将构造函数设计为保护的或者私有的,而提供静态成员函数负责返回给客户已经创建好的对象。这样做有什么优点呢?1)首先引入了静态函数,增加了间接性,这样也就带来了灵活性,这一点和其他的创建型模式一样。设计者可在内部创建单例对象,也可以预先创建,以提高性 阅读全文

posted @ 2012-02-04 22:05 阳光VIP 阅读(88) 评论(0) 推荐(0) 编辑

摘要: 如果我们对预定义类型使用==或者!=,就是值比较;如果我们对自定义类型的两个变量(引用)使用==或者!=,就是引用比较,也就是只比较内存地址。我们也可以调用自定义类型的equals方法进行比较。由于所有的自定义类型都是从Object派生,而Object类已经实现了equals方法,而这种默认的实现实际上就是引用比较,如果我们的自定义类需要提供值比较的语义,就需要重写该函数,并且在文档中说明。因此,我们不能简单理解为equales就是值比较,在某些情况下默认继承而来的引用比较更加符合某些场合的应用。String类型的equals提供了值比较的语义,比如:String str1=new Strin 阅读全文

posted @ 2012-02-04 22:05 阳光VIP 阅读(427) 评论(0) 推荐(0) 编辑

摘要: 匿名内部类,比如下面函数内部initialize定义了两个匿名类(红色代码部分): publicsynchronizedvoid initialize(Environment env, Detector detector, DaemonListener listener, PlainLogger[] loggers) throws NullPointerException, IllegalStateException { if (fInitialized) { return; } Helper.notNull( env, "environment" ); Helper.no 阅读全文

posted @ 2012-02-04 22:04 阳光VIP 阅读(135) 评论(0) 推荐(0) 编辑

摘要: C++中有多继承,多继承很好,但是c++多重继承中,派生类继承了所有父类的实现,导致体积膨胀等缺点。C#和java的设计者坚持单继承,所有的类都派生自Object类,他们提供了interface来模仿c++的多继承(java里称为mixing—混合类型), 既利用了多继承的好处,又因为接口不包含任何方法实现和非静态成员变量,因而没有c++多重继承带来的困扰。 interface只能声明方法,不能实现方法。抽象类则可以实现方法,但是不能用于多继承。一个类可以扩展另一个类,同时又实现其它接口;一个接口也可以扩展自两个不同的接口。下面就是一个示例:publicclass MyInteger2 ext 阅读全文

posted @ 2012-02-04 22:04 阳光VIP 阅读(64) 评论(0) 推荐(0) 编辑

摘要: final的字面意思是指无法改变,但是不同的情况下使用,会有些许区别final成员变量当final修饰一个类的成员变量时,表示该成员变量是常量,这句话需要解释一下:如果该成员变量的类型是预定义类型,说明该变量值不可修改;如果该成员变量的类型是自定义类型,则该变量只是引用,那么该引用不能再指向别的对象,而对象的值却是可以修改的。 注意:1)当我们使用static final+预定义类型变量来表示一个静态常量的时候,变量名应该全部用大写字母,并且单词之间用下划线分隔。 2)使用final修饰的成员变量一定要立刻初始化其值。final参数 final修饰形式参数,意味着函数内部不可以让参数引用其它的 阅读全文

posted @ 2012-02-04 22:04 阳光VIP 阅读(138) 评论(0) 推荐(0) 编辑

摘要: Serializable实现Serializable接口 这是最简单的序列化方式。下面的例子将类的内容写到文件中,然后再反序列化声称新的对象。public class MyClass implements Serializable{ private String name; private int value; public MyClass(String name,int value) { this.name=name; this.value=value; } public static void main(String[] args) throws ClassNotFoundExcept.. 阅读全文

posted @ 2012-02-04 22:03 阳光VIP 阅读(138) 评论(0) 推荐(0) 编辑

摘要: 1)实现Cloneable接口,因为Object的clone方法将检查类是否实现了Cloneable接口,如果没有将抛出异常CloneNotSupportedException对象。Cloneable接口没有任何方法,只是个标志,所以只需要简单得写上implements Cloneable即可。2)改写从Object继承而来的clone方法,使它的访问权限为public,因为为了防止意外的支持clone操作,Object的clone方法是protected权限。3)在clone方法中,调用super.clone()方法。Object的clone方法能够按照旧对象的大小创建足够的内存空间,并按位 阅读全文

posted @ 2012-02-04 22:03 阳光VIP 阅读(135) 评论(0) 推荐(0) 编辑

摘要: Swing是什么 Swing属于JFC(Java Foundation Classes)的一部分。JFC包含了AWT,Swing,辅助功能API,Java2D,拖放。Swing的出现是为了解决AWT(Abastract Window Toolkit)的移植性和提供更多的企业级应用程序所需要的功能。Swing建立在核心AWT库上,JDK1.2以及更高的版本已经包含了Swing库。 Swing内部采用了MVC体系结构(modle-view-controller)。modle负责存放Swing组件的状态(数据),controller负责处理事件,view负责绘制图形。Swing使用了简化的MVC变体 阅读全文

posted @ 2012-02-04 22:02 阳光VIP 阅读(564) 评论(0) 推荐(0) 编辑

摘要: 定义 JavaBean的定义:根据Sun的JavaBean规范,一个bean就是一个可重用的软件构件、并能够在开发工具中可视化的操作。创建JavaBean JavaBean规范没有要求一个JavaBean类都必须有默认构造函数,但是大多数开发工具都有这样的要求,所以这成为了一个事实上的标准。所以,如果一个Java类要成为JavaBean,就需要提供一个默认构造函数。 JavaBean通过提供get/set方法来读取或者设置属性。 JavaBean通常需要支持序列化功能。一般是实现Serializable或者Externalizable接口。请参见序列化一节。 通过NetBeans创建JavaB 阅读全文

posted @ 2012-02-04 22:02 阳光VIP 阅读(157) 评论(0) 推荐(0) 编辑

摘要: 标准异常的层次结构 Java标准异常的层次结构代表的分类绝对是一个败笔。因为所有的异常对象都是在运行时抛出的,没听说过有什么编译期异常。因此RuntimeException类代表的实际上是逻辑错误导致的异常,即标准c++中的std::logical_error。 Java异常分为两大类,程序员只能抛出Exception异常对象,Error对象是Java系统在内部发生错误或者资源耗尽时才抛出的。 还有另外一种分类方法,Error和RuntimeException对象被称为unchecked exception,其他的则被称为checked exception,也就是说java编译器将对check 阅读全文

posted @ 2012-02-04 22:02 阳光VIP 阅读(144) 评论(0) 推荐(0) 编辑

上一页 1 ··· 70 71 72 73 74 75 76 77 78 ··· 139 下一页