Ale*_*xis 6 java composition inner-classes
组成和内部类之间有什么区别和相似之处?我正在尝试学习Java的原理,并试图弄清楚整个图像。对我来说,更好地进行类比并了解概念之间的异同,以便正确地使用它们。
组合的定义:“组合是在类中实现has-a关系的设计技术”。“ Java组合是通过使用引用其他对象的实例变量来实现的”
内部类的定义(或成员类,不是匿名的):“成员类也被定义为封闭类的成员,但未使用static修饰符声明。这种内部类类似于实例方法或字段成员类的实例始终与封闭类的实例相关联,并且成员类的代码可以访问所有字段和方法”
因此,通过面对两个定义,我看到了一些相似之处:
1. Both have HAS-A relationship
2. Both are strictly dependent on the outer class lifetime
3. can be declared private
Run Code Online (Sandbox Code Playgroud)
差异:
1. Inner classes uses classes, composition use instances (?!)
2. In composition no restriction to use the variables of the "outer" class
Run Code Online (Sandbox Code Playgroud)
如果我完全错了,请纠正我,我需要更好地追踪两个概念的局限性。
这两个方面是相关的。为了更好地组织我的事,让我们定义A和B:
例:
class Driver {
}
class Car {
// A
class Engine {
void start() {
if (gasLevel > 0) {
...
}
}
}
//B
Driver driver;
int gasLevel;
}
Run Code Online (Sandbox Code Playgroud)
说:
综上所述,两个不同类之间的组合以及内部类之间的组合是控制系统耦合和内聚级别的方法。
| 归档时间: |
|
| 查看次数: |
2045 次 |
| 最近记录: |