Java语言程序设计(原书第8版)--基础篇 设计指南

掌握Java语言基本且必备的知识点,在实践中运用并总结!
1.如何判断一个变量或方法应该是实例的还是静态的?如果一个变量或方法依赖于类的某个具体实例,那就应该将它定义为实例变量或实例方法。如果一个变量或方法不依赖于类的某个具体实例,就应该将它定义为静态变量或静态方法。例如:每个圆都有自己的半径。半径都依赖与某个具体的圆。因此,半径radius就是Circle类的一个实例变量。由于getArea方法依赖于某个具体的圆,所以,它是一个实例方法。在Math类中没有一个方法是依赖于一个特定实例的,例如:random、pow、sin和cos。因此,这些方法都是静态方法。main方法也是静态的,可以从类中直接调用。
2.最好能为每一个类提供一个无参构造方法(如果需要的话),以便于对该类进行扩展同时避免错误。
3.在程序清单11-9中,MyStack中包含ArrayList。Mystack和ArrayList之间的关系为组合。因为继承是对”是一种“(is-a)关系建模,组合是对”是一部分“(has-a)关系建模。可以将MyStack实现为ArrayList的一个子类(参见练习题11.4)。使用组合关系更好些,因为它可以定义一个全新的类,而无须继承ArrayList中不必要和不恰当的方法。
4.抽象类和接口都是用来明确多个对象的共同特征的。那么该如何确定在什么情况下应该使用接口,什么情况下应该使用类呢?一般来说,详细描述父子关系的强是关系(strong is-a relationship)应该用类建模。例如,因为公历是一种日历,所以类java.util.GregorianCalendar和java.util.Calendar是用类继承建模的。弱是关系(weak is-a relationship)也称为类属关系(is-kind-of relationship),它表明对象拥有某种属性。弱是关系可以用接口来建模。例如,所有的字符串都是可比较的,因此,String类实现Comparable接口。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值