Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何创建对象?_Java_Object - Fatal编程技术网

Java 如何创建对象?

Java 如何创建对象?,java,object,Java,Object,我就这样找。看到一个说总共有四种方法 第一个是使用new关键字。剩下的就更复杂了 但是假设你想构造一个字符串对象: String object1= String("Bob") 如果我们保留参数,空白对象将为null。< /P> 但问题是:我们不能用更简单的方法来做吗 String object1="Bob"; 至少有6种方法 使用新关键字 使用类的newInstance方法使用反射 要创建现有对象的副本,请使用克隆方法 使用对象反序列化从通常使用的序列化对象创建objectInputStre

我就这样找。看到一个说总共有四种方法

第一个是使用new关键字。剩下的就更复杂了

但是假设你想构造一个字符串对象:

String object1= String("Bob")

如果我们保留参数,空白对象将为null。< /P> 但问题是:我们不能用更简单的方法来做吗

String object1="Bob";
至少有6种方法

使用新关键字 使用类的newInstance方法使用反射 要创建现有对象的副本,请使用克隆方法 使用对象反序列化从通常使用的序列化对象创建objectInputStream.readObject 使用getClassLoader 使用工厂方法创建。。。 不管怎样,关于你的例子 String object1=新的StringBob;它等于字符串object1=Bob


每当遇到字符串文本时,如string object1=Bob;在代码中,编译器使用其值创建字符串对象,因此在本例中,String object1=new StringBob;,这就是它们相等的原因。

我也想知道为什么有时在构造对象时,我们可以设置类?你是说我在评论中的问题?两者都是JavaA空白,即字符串构造函数中的任何参数都不会创建空对象-请参阅。在添加新关键字之前,您的第一行代码不会编译。不确定您的意思。能够使用构造函数创建自己的类是面向对象语言的一个特点。不确定这与您的问题有何关系,是的,您可以创建一个字符串对象,其中包含一个文本,例如Bob。这不是一个新对象,这是一个文本……新的StringBob与obj=Bob不同。您可以通过打印newstringbob==newstringbob和Bob==BobAnd的结果来测试它至少大多数方法都是封装的new的形式。就像克隆和工厂一样…@Alexandru:当我运行String object1=new StringBob;字符串object2=Bob;如果object1.EqualObject2 System.out.println是;-它会打印“是”。我试图解释当你分配文字时,一个对象确实被创建了。也许“相等”这个词比“相同”更好——我会这么说的change@CommuSoft:是的-他们中的大多数人都是用你的话来包装或封装新事物的。工厂方法在内部使用“getInstance”,它使用new;同样,newInstance也使用new运算符。。这里的重点是,开发人员可以使用什么来创建一个对象?我没有意识到有那么多。也许我的书过时了。你从哪里得到信息。关于Java的最新版本?