如果文章对你有所帮助,请点喜欢并关注,这将是我最大的动力,谢谢
首先我们都知道面向对象程序设计语言最了不起的优点之一就是她的可复用性,而到底如何实现可复用性呢,今天我们来简单的探讨一下。
最简单地复用某个类的方式就是直接使用该类的一个对象,此外也可以将那个类的一个对象置于某个新类中。我们称其为“创建一个成员对象”。新的类可以由任意数量、任意类型的其他对象以任意可以实现新的类中想要的功能的方式所组成。——Thinking in Java
所谓成员对象,也就是像该书中说的一样,打个比方,A类的成员变量的类型是B类,那么A类的成员变量的属性就是B类的属性,那么该成员变量也可以调用与之所对应类型的B类的方法。
- 下面通过一个小demo来看一下他的具体实现
我们想要通过程序来描述书,那么我们可以将之定义为书类,而书中我们大致也分为电子书和纸质书两种,显然,将他们都放在书类来写,程序必定冗余繁杂,并且后期维护困难,这时就是“成员对象”大显身手的时候了。我们不妨将电子书和纸质书分别单独归位一类,最后用书类来个大一统。具体代码如图 -
这是电子书类
ebk.png - 下面是纸质书类
- 最后是大哥出场时间
当然对于以上代码,也许用继承能更好的实现,继承我们之后再谈。
- 下面说一下我个人在学习过程中的一些心得
可能有人刚从面向过程的学习过度到面向对象,对于类里定义的成员变量不是基础类型如Int double,而是一个自己定义的类,在用的时候有些一时转不过弯来。
对此我想说,把int型也当成一个类,double型也当成一个类,诚然,他们都有包裹类,int型对应Integer类,double型对应Double类,在用法上类和类是一样的
如
int i=10;
Integer i=new Integer(10);//这里的和我们定义的类都一样,他可以调用Integer的方法
把基础类也当成我们定义的类来想象。把 int i=10想象成Integer i=new Integer(10),希望能有所帮助。
网友评论