Thinking In Java 4th Chap7 复用类】的更多相关文章

复用代码的两种方法:组合和继承 组合方法:(新类中产生现有类的对象) 没什么好说的,就是调用别类的对象而已 值得一提的是一个特殊方法:toString()当需要一个String却只有对象时能够自动调用此方法(每个类只需写一个toString方法) 例如:class Myclass{ /*..............*/ private String s; public String toString(){ return s;} } 对象引用的初始化方法:1.定义对象之时即初始化 2.在类的构造器…
今天继续读<java 编程思想>,读到了复用类一章,看到总结写的很好,现贴上来,给大家分享. 继承和组合都能从现有类型生成新类型.组合一般是将现有类型作为新类型底层实现的一部分来加以复用,而继承复用的是接口. 在使用继承时,由于导出类具有基类接口,因此它可以向上转型至基类,这对多态来讲至关重要. 尽管面向对象编程对继承极力强调,但在开始一个设计时,一般应优先考虑使用组合(或者可能是代理),只在确实必要时才使用继承.因为组合更具灵活性.此外,通过对成员类型使用继承技术的添加技巧,可以在运行时改变…
mark一篇09年的<Thinking in Java>笔记:here --> https://lawrence-zxc.github.io/2009/11/07/thinking-in-java/ 1.复用类的方式有四种:创建这个类的对象.组合.继承.代理(*略) 2.有时候无法创建一个类的对象(当这个类的构造器被设置为private的时候) 3.运用组合这个复用策略,首先要考虑的是成员对象的访问权限及成员对象的初始化和清理.设置访问权限就是去考虑和客户程序员的关系,哪些接口是需要暴露…
如果java的基类拥有某个已被多次重载的方法名称,那么在导出类中重新定义该方法名称并不会屏蔽其在基类中的任何版本(这一点与C++不同) class Homer { char doh(char c) { System.out.println("char"); return c; } float doh(float f) { System.out.println("float"); return f; } } class Milhouse{} class Bart ex…
/* 一个文件中只能有一个public类 并且此public类必须与文件名相同 */ class WaterSource { private String s; WaterSource() { System.out.println("WaterSource()"); s = "constructed"; } //每一个非基本类型的对象都有一个toString()方法,当编译器需要一个String而却只有一个对象时,该方法便会被调用 public String toS…
7 复用类 7.1 组合 即在一个类中使用另一个类作为成员变量,这是复用了现有程序代码的功能,而非形式. 7.2 继承 关键字:extends,这种复用是形式的复用,是一种可扩展和限制的复用: 复用:自动获取基类的所有public(protected)成员和方法,如果基类的成员和方法没有访问限定词,那么这个基类的无限定词方法和成员能在同一个包中的子类中访问,其它包中不行(包访问权限): 初始化基类:在子类构造器可访问之前先会调用父类的构造器,如果父类还有父类,将继续向上搜寻并调用构造器:如果不显…
1.继承与组合 复用类的方法有两种:继承与组合.继承就不多说了,组合就是直接在类中new一个对象. 数组也是对象,使用数组也是组合的一种. 2.初始化基类 当创建一个导出类的对象时,该对象包含一个基类的子对象.这个子对象跟直接new一个基类的对象完全相同,唯一的区别是:一个在外部,一个被包装在导出类对象内部. 在导出类构造器中,通过调用基类构造器来执行初始化.[在Java中,所有导出类的所有构造器内部都必须调用父类的某一个构造器或所有导出类的所有构造器内部都必须调用一个其他构造器(既可以是本类构…
java复用类英文名叫reusing classes  ,重新使用的类,复用的意思就是重复使用的类,其实现方法就是我们平常使用的组合和继承: 1.组合: has-a 的关系  (自我理解:组合就是我们平时新建一个类的对象,然后使用这个类的各种属性,这就是组合,组合只能够使用其方法,不能够改变方法) 2.继承: is-a 的关系  (自我理解:继承就是一个类去继承另一个类,然后能够使用这个类中的方法和属性,而且能够重写父类中的方法,是接口) 重写:(@Override)  重写是子类方法重新覆盖父…
复用类有两种实现方式. 在新的类中产生现有类的对象,由于新的类是由现有类的对象所组成,所以这种方法称之为组合. 采用继承实现. 一  组合语法 下面创建两个类WaterSource和SprinklerSystem.其中SprinklerSystem中包含WaterSource的对象引用. class WaterSource { //如果定义时没有初始化,则基本类型会被自动初始化为0,对象引用初始化为Null private String s; WaterSource(){ System.out.…
组合语法 将对象引用置于新类中,即形成类的组合. 引用初始化方法 在定义处初始化. 在类的构造器中初始化. 在使用这些对象之前,进行"惰性初始化". 使用实例初始化. 继承语法 Java中所有的类都是在继承,如果没有明确指出继承的类,则就从根类Object中继承. 每个类中都可以有main方法,可以方便单元测试. 即使一个类只具有包访问权限,其public main()仍然是可以访问的. 继承是对类的复用,可以获得所继承的类中的非私有的方法. 采用super关键字可以访问父类(超类)中…