Resuing Classes 类复用(代码复用)

Resuing Classes

1.     代码重复使用是java最令人注目的功能之一。代码重用可以很大程度上减少复制代码和改写代码的工作。

2.     代码复用的技巧是:使用已经存在的类但是不改变存在的代码。有两种方法可以达到代码复用的目的:A.通过组合(composition);B. 通过继承(inheritance

3.     组合的语法:新建一个类,其中包含已存在类的引用。

4.     初始化一个引用的4个途径

A.在引用声明时。

B.在构造方法中

C.在引用被即将使用时(懒引用实例化)

D.使用实体初始化(instance initialization

5.     继承在java(所有oop语言)语言中无处不在,只要你创建一个class你就在使用继承,这是因为除非你显式继承其他类,若不然,就隐含继承了java的根类对象Object

6.     当你使用继承时,你是在表明这个新类 类似 被继承的类

7.     当你继承了一个类时,你就获得了这个类所有的成员变量和成员方法。

8.     继承不是简单的复制父类的方法。当你实例化一个子类时,子类对象将包含有一个父类的对象,这个父类的对象跟你用父类创建的一样。

9.     一个重要的问题是,在实例化子类的时候一定要保证父类被正确实例化,方法是在子类的实例方法中调用父类的实例方法。Java中子类隐含调用父类的默认构造函数,如果父类没有默认构造函数,或者子类需要调用父类的有参数构造函数,那么必须在子类的构造函数中显式调用父类的构造函数,通过关键字super。对父类构造函数的调用必须在子类构造函数语句第一句。

10. 除了组合和继承,还有一种关系代理、委托(delegation).java语言再语言级别不是直接支持的。

11.  代理、委托是介于继承和组合之间的一种代码复用的方式,因为你可以在你的代理类中放置一个成员实例对象(像组合),同时你(开放,展示)expose成员实例对象的方法(类似继承)

12. 通常情况下 组合和继承同时使用的。

13. java没有类似C++ 中的析构函数(用来释放资源的),但是java有垃圾回收器,在必要的时刻会释放系统资源,清除垃圾对象。

14. 垃圾回收器执行垃圾回收操作具有不确定性,在大部分情况下保证了正常的资源回收。但是在一些情况下,需要及时的释放资源,这就要保证立刻的执行释放资源操作。如何实现呢?

15. 在实现释放资源方法中,先释放自己占有的资源然后释放父类占有的资源

16. 重载(overload)、覆盖(override):方法同名但是方法签名不同为重载,方法签名相同为覆盖。通过使用@override 可以保证是否真的进行了覆盖操作。

17. 何时使用组合何时使用继承呢? 使用组合只是为了使用成员对象提供的一些功能哦。使用继承是要创造一个比父类更特别的类,一般来说,就是扩展一个通用的类使其更特别。 继承关系是 is-a关系;组合关系是has-a关系。

18. protected 访问级别是子类或者同包类。

19. 继承所提供的最重要的功能不是代码的重用,而是继承建立了一个子类和父类的关系。这个关系就是:子类是父类的一种特殊类型。

20. 再论组合和继承: 在面向对象编程中,最可能的方式是你通过类来封装数据和方法,然后构造类的实例以便使用。你可以使用已经存在的类通过组合构造新类;你也可以使用继承。虽然在面向对象编程中一再强调继承的重要,但是并不意味着在可能使用的地方均使用继承。在组合和继承均可实现的功能的背景下是否选择继承,一个最清楚的方式是判断是否需要将子类向上转型(upcasting)。如果子类需要向上转型就用继承,如果不需要,则选择自己喜欢的方式,要么继承要么组合。

21. final 关键字在不同的情况下,含义是有差别的。但一般来说final总是意味着“不能改变!”阻止改变有两个原因:(a)设计 (b)效率。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值