gpt4 book ai didi

java - 为什么类对象只能在java中动态创建?

转载 作者:行者123 更新时间:2023-11-30 00:50:42 25 4
gpt4 key购买 nike

这个问题已经问过before但我没有从那里找到很好理解的答案。我实际上想知道,与 c++ 不同,类对象 不能在java静态 创建,为什么? Java 设计者希望避免发生的静态创建对象的主要缺点是什么?

谢谢。

最佳答案

好问题。人们很想说这是因为语言的作者比你更了解什么值类型您需要并提供了它们,并且不想让您定义新的(例如 Complex)。当然还有一些那:它还解释了缺少运算符重载的原因。

但我怀疑那不是人们心目中的原因Java作者。你需要动态分配和指针(什么Java 在某些情况下调用引用),例如多态性时涉及到,而 Java 作者只是简单地决定他们将只支持这个成语,而不是让语言更通过让它支持几种不同的习语而变得复杂。它是当然,当你真正需要值语义时,这是一种痛苦,但是小心,您可以模拟它们(java.lang.String 将是一个很好的例子)通过使类 final 并且不可变,返回新实例的“运算符”。

当然,C++ 增加的表现力确实提供了更多出错的可能性:取本地地址很容易变量,例如,并以悬空指针结束。但仅仅因为你可以做某事并不意味着你必须做;在 C++ 中,一个不称职的程序员可能会使程序崩溃立即,在 Java 中,他通常会以错误的结果(尽管未捕获的异常并不少见要么)。

关于java - 为什么类对象只能在java中动态创建?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24179497/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com