EFFECTIVE JAVA 类和接口】的更多相关文章

第十六条:复合优先于继承 //这是一个不好的类---执行的结果 addCount = 4(addAll的实现依赖于HashSet的add方法,InstrumentHashSet方法重写了add方法有执行了addCount++) public class InstrumentHashSet<E> extends HashSet<E> { private int addCount = 0 ; @Override public boolean add(E e) { System.out.…
要创建一个EJB,必须要至少编写哪些Java类和接口? A. 定义远程(或业务)接口 B. 定义本地接口 C. 定义Bean接口 D. 编写Bean的实现 解答:ABC…
一般类,抽象类,接口的使用场景: 类;共同的特征和行为的抽取和封装 接口:标准,规范(功能的扩展)         需要对某个类进行功能的扩展,就让某个类实现这个接口,抽取出来称为接口   内部类:   1.成员内部类: 该类与外部类的属性和方法平级 Outer outer =new Outer(); outer.show(); //创建内部类的实例 Outer.Inner inner=outer.new Inner(); //实例.new方法 inner.showInner(); 创建成员内部…
类和接口在初始化化时,处理继承层级的方法不一样. 类继承的初始化:通过引用 static 字段,触发某个类的初始化,则声明该字段的类,以及该类的父类被初始化. 接口继承的初始化:通过引用 static 字段,触发某个接口的初始化,则声明该字段的接口会被初始化,但该接口的父接口不会被初始化. 想了解其他触发类初始化的方法,可参看另一篇博文 类的初始化步骤 . 注意一点,接口字段全部隐式地被修饰为 public, static, final .因此,所有的接口字段实际上都是 static 的,无论有…
类和接口 使类和成员的可访问性最小 信息隐藏(information hiding)/封装(encapsulation):隐藏模块内部数据和其他实现细节,通过API和其他模块通信,不知道其他模块的内部工作情况. 原因:有效地解除各模块之间的耦合关系 访问控制机制(access control):决定类,接口和成员的可访问性.由声明的位置和访问修饰符共同决定. 对于顶层的类和接口,两种访问级别: 包级私有的(package-private) 公有的(public) 对于成员(域,方法,嵌套类,嵌套…
本章节收集的类/接口API有: Object类,枚举,包装类,接口Comparable,类Arrays,Thread类,System类,Math,BigInteger,Random,日期时间,异常 Object类 非静态方法需对象调用 public String toString(): [把一个对象的信息用一个字符串表示,尽量要能够简单易懂,建议子类重写] public Class<?> getClass(): [获取对象的“运行时”类型] public void finalize():   …
对于BigDecimal类在HashSet和TreeSet中 new BigDecimal("1.00") new BigDecimal("1.0") 在HashSet容器中这是两个实例,因为BigDecimal类的equals()方法来比较是不相等的, 但是在TreeSet容器中这是一个实例,因为TreeSet会调用BigDecimal实现的compareTo()方法,实际上BigDecimal的compareTo()方法对上述两个实例来讲是相等的 这里涉及到一个…
运动员和教练的案例分析 运动运和教练的案例 代码实现 /* 教练和运动员案例 乒乓球运动员和篮球运动员. 乒乓球教练和篮球教练. 为了出国交流,跟乒乓球相关的人员都需要学习英语. 请用所学知识: 分析,这个案例中有哪些抽象类,哪些接口,哪些具体类. 整个分析过程,我是通过画图讲解的. */ //定义一个说英语的接口 interface SpeakEnglish { //说英语 public abstract void speak(); } //定义人的抽象类 abstract class Per…
呕心沥血画出此图,希望在使用Java类.接口时捋顺其关系,从而更好的组织程序逻辑---请看图 Object分出来的类都是其子类 Iterable接口分出的也是子接口 从继承关系分析,其父类实现的接口子类都被继承,子类扩展的接口,有实现同一接口的被框起了, 集合类被框起来并用实线带箭头链接其来一并实现了Serializable和Clonable接口,可见一斑 后续会继续添加常用类与接口…
一.Java的类加载机制回顾与总结: 我们知道一个Java类要想运行,必须由jvm将其装载到内存中才能运行,装载的目的就是把Java字节代码转换成JVM中的java.lang.Class类的对象.这样Java就可以对该对象进行一系列操作,装载过程有两个比较重要的特征:层次组织结构和代理模式.层次组织结构指的是每个类加载器都有一个父类加载器,通过getParent()方法可以获取到.类加载器通过这种父亲-后代的方式组织在一起,形成树状层次结构.代理模式则指的是一个类加载器既可以自己完成Java类的…