【发布时间】:2020-06-04 14:32:39
【问题描述】:
我是一名 IT 专业的学生,从那时起我就一直在尝试编程......尽管这么长时间以来我仍然无法理解 许多 东西和概念。 最基本的一种是 Java(因为我应该主要研究它)构造函数。
好吧,我知道一个类是一个蓝图,我们使用构造函数来创建一个对象并将值分配给类变量,但它到底是如何工作的呢?
ExampleClass exampleClassObject = new ExampleClass()
好吧,当然,我已经尝试过为此寻找答案,但我想这太愚蠢了,甚至无法解释它......
有4个关键字,对吧?
ExampleClass - 是我们要为其创建对象的类
exampleClassObject - 是对象名称
= new - 实际上我并不知道它到底是做什么的
ExampleClass() - 这个。这该死的东西..它有什么作用?他的目的是什么?我们不是已经告诉 Java 用 first 关键字创建一个 ExampleClass 的对象了吗?
我认为它是我们 exampleClassObject 的类型,但是...为什么需要指定它?如果您可以更改对象的类型(正如我在其他代码中看到的那样),那有什么意义呢? 制作一个 ClassX 的对象,但属于 ClassY 类型......我真的不明白,抱歉,这只是冰山一角:')
感谢您的帮助。
编辑 1 感谢您的即时回复!但是..
@迈克尔
List<String> list = new ArrayList<>(); list = new LinkedList<>();
这有什么意义.. 为什么不立即制作 LinkedList?为什么要从已经存在的对象中创建一个新对象?
我感觉就像“1kg 钢对 1kg 羽毛”中的那个家伙……我不明白,非常感谢你的努力,哈哈
编辑 2 对于那些投反对票的人来说,并不是我在网上或文档上看的不够多,而是我不理解它:) StackOverflow 是我的最后一个资源,否则我不会问...
再次感谢您的帮助。
【问题讨论】:
-
new ExampleClass()实际上这是一回事。它正在调用ExampleClass类的构造函数。您可以在那里调用一些其他方法,或者只是将另一个对象分配给该变量,这就是ExampleClass重复的原因。 -
有一个关键字:
new。您是否考虑过查阅文档? -
这个 ArrayList/LinkedList 只是一个例子,在实际代码中没有任何期望。它表明变量的类型不一定是创建对象的类型 - 它可能是超类型(通常是这样)。
标签: java object types constructor