内部类是否在java中作为组合关系工作?

内部类总是在外部类中,如果我们删除外部类,那么内部类也将被销毁。 我不考虑内存释放,我只考虑这个概念。 这是关于构图的相同概念。 然后内部类必须是现实世界中对象的组合关系的例子。

简而言之,我想将内部类的概念与现实世界的面向对象联系起来。

我认为构造函数是组合的好例子,那么在Object Orientation中涉及内部类的基本需求是什么。

我对内心阶级有所了解,但有很多模糊性。


例如

大学是外课。

教师是内在阶级。


我确实理解面向对象,但我发现很难将内部阶级与现实世界联系起来。 你能给我一些指示吗?

简而言之,我想将内部类与现实世界的面向对象联系起来。

由于世界不是100%面向对象,因此“ 真实世界面向对象 ”这个表达没有多大意义。 面向对象是一种简化 ,它是一种创建现实世界系统简化模型的方法。

把它放在一边,你想要现实生活中的例子吗? 来吧,你在开玩笑吧。 这并不难。 考虑一下你的第一句话,它已经让你知道它在现实生活中会如何运作:

内部类总是在外部类中,如果我们删除外部类,那么内部类也将被销毁。

没有被破坏。 对象,这些类的实例是。 你需要正确定义你的定义。 我假设你理解了类和对象的概念,对吧? 如果没有,我建议你现在停下来。

其次,外层和内层并不一定意味着构成。 当包含对象实例的外部类被销毁时,内部类的实例可以存在并且不被销毁。

结构中不涉及的内/外类的真实例子:

日产240SX汽车是该车型(外类)的一个实例(特定汽车)。 它的引擎(特定于该模型)是日产240SX引擎(内部类)的特定对象或实例。

汽车(外部类的对象实例)发生事故并且大部分被破坏,但是引擎(内部类的对象实例)被抢救(它没有被破坏)。

结构中涉及的内/外类的真实生活示例:

心脏(或任何内部器官) – 内部类体 – 外部类。

如果一个实际的主体(外部类的一个对象实例),它的内心(它的内部类的对象实例恰好与组成内容有关)也会死掉。

涉及内/外类的组合的真实生活示例:

银行账户 – 附上类交易 – 附上的类

交易只是一些钱和一种行动类型(借方,贷方)。 从银行账户进行特殊处理或制造太简单了。

您关闭(销毁)银行帐户,其中的所有交易也会被销毁。

显然,它们不会被破坏,因为银行将保留已关闭帐户(及其中的所有活动)的记录,但从帐户所有者的角度来看,帐户及其内部会被关闭/销毁。

什么是作文?

维基百科链接

什么是内心阶级?

维基百科链接

还有一件事:

谷歌是你的朋友。 如果你真的想成为一名工程师,你最好学习如何进行自己的研究。

区分类和对象。 定义一个类

Class Truck extends Vehicle { private SteeringWheel mySteerer; } 

在这里我们看到,当我们创建一个Truck Object时,它有一个SteeringWheel 。 构成关系。 现在, SteeringWheel的Class定义在哪里? 到目前为止你还不知道。

它可以在一个单独的类文件中:

 Class SteeringWheel { // stuff } 

或者我们可以把它变成一个内部类:

 Class Truck extends Vehicle { private SteeringWheel mySteerer; private Class SteeringWheel { // some stuff } } 

在任何一种情况下,我们仍然有组成。 Inner Class给我们的东西是代码中的结构,通过使它成为一个内部类,我们限制SteeringWheel类的范围,它只在Truck类中可见。

所以内部类主要是组织实现的工具 – 良好的代码组织有助于维护。

答案是,它与“真实世界的面向对象”无关,无论是什么。 它只是一种编程语言function。 可能有面向对象的语言不支持内部类 – 就像有支持内部函数/过程的编程语言而其他语言不支持。