J2SE
文章平均质量分 50
greenlihui
这个作者很懒,什么都没留下…
展开
-
初始化块
非静态初始化快class Person { // 下面定义一个初始化块 { int a = 6; if (a > 4) { System.out.println("Person初始化块:局部变量a的值大于4"); } System.out.println("Person的初始化块"); }原创 2017-03-13 12:54:03 · 218 阅读 · 0 评论 -
抽象类和接口
抽象类抽象类可以不含有抽象方法,含有抽象方法的一定是抽象类或者接口。抽象类(的构造器)不能用于创建实例,只能被当作父类被其他子类继承,如果子类是普通类,则必须实现所有抽象方法。final修饰的类不能被继承,因此abstract和final不能同时出现。使用static修饰方法时,通过类就可以调用该方法,但是如果被定义成抽象方法,则调用时会出现错误,因此static和final不能同时修饰方法原创 2017-03-13 10:15:10 · 283 阅读 · 0 评论 -
继承和组合
继承和组合的区别假设有三个类:Animal,Wolf和Bird,继承关系如下代码所示:class Animal { private void beat() { System.out.println("心脏跳动..."); } public void breath() { beat(); System.out.println("吸一原创 2017-03-13 10:06:36 · 317 阅读 · 0 评论 -
单例类
单例类在某些特殊场景下,不允许一个类自由创建对象,只允许该类创建一个对象,这个类称为单例类。因此,该类的构造器需要用private隐藏起来,这样就需要提供一个public的static方法 (调用该方法前还不存在对象,因此调用该方法只能是类) 作为该类的访问点,用于创建对象。另外,该类还需要用一个成员变量缓存已经创建的对象,来确保对象是否已经创建和只创建了一个,该成员变量需要被上面的静态方法访问,所原创 2017-03-13 09:55:56 · 348 阅读 · 0 评论 -
不可变类
不可变类不可变类就是创建该类的实例后,该实例的实例变量是不可改变的。Java提供的8个包装类和java.lang.String类都是不可变类。创建自定义的不可变类,可遵循如下规则: 使用private和final修饰成员变量 提供带参数的构造器,根据参数来初始化成员变量 仅提供getter方法,不提供setter方法 如果有必要,重写hashCode和equals方法(e原创 2017-03-13 13:08:03 · 443 阅读 · 0 评论 -
面向接口编程的设计模式
面向接口编程的设计模式简单工厂模式假设程序中有个Computer类需要组合一个输出设备,现在有两个选择:直接让Computer类组合一个Printer,或者让Computer类组合一个Output,那么到底采用哪种方式更好呢?假设让Computer类组合一个Printer对象,如果有一天系统需要重构,需要使用BetterPrinter来代替Printer,这就需要打开 Computer类源代码原创 2017-03-13 13:18:53 · 4203 阅读 · 0 评论 -
final关键字
final修饰的成员变量一旦有了初始值,就不能被重新赋值,而且必须由程序员显示地指定初始值。final修饰的引用类型变量也不能被重新赋值,但可以改变引用类型变量锁引用对象的内容,例如:public static void main(String[] args) { final int[] iArr = {5, 6, 12, 9}; // 对数组元素进行排序,合法 Arra原创 2017-03-13 13:21:42 · 200 阅读 · 0 评论