类关系
三类常见的类关系是依赖、聚合和继承。
依赖
1、在依赖关系中,一个类“使用”另一个类。
2、如果被调用的方法是静态的,则类A只能通过名字来引用类B的方法。如果被调用的方法不是静态的,则类A必须能够访问类B的某个实例,以便能调用这个方法,即类A必须有一个指向类B对象的引用。
3、一般情况下,类之间的依赖越少,系统中互相影响的情况就越少,因此错误也就越少。
4、同一个类中各对象之间也可能存在依赖关系,即一个类的对象与同一类的其他对象进行交互。可以通过让类的方法接收本类的一个对象作为该方法的参数来实现这一点。
聚合与this引用
1、聚合对象由其他对象组成,形成has-a关系。
2、在方法内,可以使用this引用指向当前正运行的对象。例如,编写代码的过程中可以包含如下的语句行:
if(this.position == piece2.position) result = false;
此处,this引用指明要使用的是哪个位置。this引用指向的对象是方法调用时所用的对象。构造方法也可以用this引用写成如下的形式:
public Account(String name,long acctNumber,double balance) { this.name = name; this.acctNumber = acctNumber; this.balance = balance; }
方法设计
1、当方法变大或变复杂时,应该考虑将它拆分成多个方法,从而得到更易于理解的类的设计。不过首先要考虑如何定义其他的类和对象,以便产生更好、更全面的系统设计。在面向对象的设计中,方法分解必须服从于对象分解。
2、当把对象传递给方法时,实参和形参互为别名。形参是传入的值的独立副本,所以对它的任何修改不会对实参有任何影响。但当传递给方法的是一个对象时,实际上传递的是对那个对象的引用,复制的值是对象的地址。所以形参和实参互为别名。如果在方法内通过形参引用改变了对象的状态,也就等于改变了实参所指的对象。而如果修改形参引用本身(例如让它指向新的对象),则不会影响实参仍指向原来的对象。
一些想法
这段时间接触了有关于类的设计、编写、调用以及它们之间的关系,并且在调用过程中参数传递的一些问题。许多东西看似简单,仔细琢磨一下会发现其中有些学问要做。教材不仅仅局限于阅读,更要动手写,要对其中出现的问题或者可能会出现的问题细细考虑,达到举一反三的效果。