gpt4 book ai didi

java - 在java中有两种创建对象的方法吗?

转载 作者:行者123 更新时间:2023-11-29 09:35:41 26 4
gpt4 key购买 nike

有什么区别

ClassABC objectName = new ClassABC();

ClassABC objectName = differentVariable.methodReturnsClassABCTypeValue();

第二个例子还是和第一个一样启动的吗?如果不是,这两种类型的“初始化”之间有什么区别?

如果这令人困惑,我将使用另一个 Java 类给出第二个示例。

Toolkit toolKitObject = Toolkit.getDefaultToolkit();
Dimension screenSize = new Dimension();

Toolkit toolKitObject = Toolkit.getDefaultToolkit();
Dimension screenSize = toolKitObject.getScreenSize();

请注意,在第一个示例中我创建了 Dimension 对象并且未为其设置任何值。但是在第二个示例中,我从未使用过 new Dimension(); 我立即继续并做了 toolKitObject.getScreenSize();

最佳答案

different在 Java 中创建对象的方法:

一个。使用 new 关键字 这是在 java 中创建对象最常用的方法。几乎 99% 的对象都是通过这种方式创建的。

MyObject object = new MyObject();

B.使用 Class.forName() 如果我们知道类的名称并且它有一个公共(public)默认构造函数,我们可以用这种方式创建一个对象。

MyObject object = (MyObject) Class.forName("subin.rnd.MyObject").newInstance();

C.使用 clone() clone() 可用于创建现有对象的副本。

MyObject anotherObject = new MyObject();
MyObject object = anotherObject.clone();

D.使用对象反序列化对象反序列化只不过是从其序列化形式创建对象。

ObjectInputStream inStream = new ObjectInputStream(anInputStream );
MyObject object = (MyObject) inStream.readObject();

E.以另一种方式使用反射。

this.getClass().getClassLoader().loadClass(“com.abc.myobject”).newInstance();

关于java - 在java中有两种创建对象的方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16129620/

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