换句话说,您可以通过创建包含现有对象的包来创建新类型的对象。因此,您可以将复杂性构建到程序中,同时将其隐藏在对象的简单性之后。
Java中是不是所有对象都相互独立?是否可以从不同的对象创建超级对象?
编辑:
Alan Kay在Java出现之前总结了Smalltalk方式的五个基本特征。根据他的说法,这是OOP的特征之一。我想知道它是否仍然适用于java。
答案 0 :(得分:3)
我认为你必须区分两个不同的概念:
在内存中,Java中的每个对象都是一个独立的实体,拥有自己的内存集(我相信Smalltalk的工作方式相同)。它可以引用其他对象,这些对象保存在自己的内存中,但不能“包含”其内存中的其他对象。
从概念上讲,有些对象以某种方式“属于”其他对象。例如,保存char[]
数据的String
在技术上是一个单独的对象,但引用它的唯一其他对象是String
(可能还有其他String
个实例,但是我们暂时忽略它。从这个意义上讲,String
包含 char[]
。
答案 1 :(得分:2)
对象不能在Java中直接包含 的其他对象 - 但它当然可以将引用包含在其他对象中。我怀疑是作者想要了解的内容。
因此,如果Customer
对象知道地址,电话号码,订单列表,名称等,那些都将是单独的对象......但不是必须明确地管理所有这些对象,而是 {/ 1}}对象的用户只保留对该对象的引用,并通过该单个对象访问其余数据。