java如何隐式创建对象?比如字符串类
我无法理解对象是如何隐式创建的 例如:java如何隐式创建对象?比如字符串类,java,string,objectinstantiation,Java,String,Objectinstantiation,我无法理解对象是如何隐式创建的 例如: String s = "implicit instantiation"; 我可以创建自己的类,其对象可以隐式创建吗?否,字符串实例化由编译器隐式处理。只有字符串和数组类具有此属性 String greeting = "Hello world!"; char[] helloArray = { 'h', 'e', 'l', 'l', 'o', '.' }; 允许隐式实例化基本包装器类型的对象,但这也是编译器处理的特殊情况。您不能使用此功能创建自己的类 Bo
String s = "implicit instantiation";
我可以创建自己的类,其对象可以隐式创建吗?否,字符串实例化由编译器隐式处理。只有字符串和数组类具有此属性
String greeting = "Hello world!";
char[] helloArray = { 'h', 'e', 'l', 'l', 'o', '.' };
允许隐式实例化基本包装器类型的对象,但这也是编译器处理的特殊情况。您不能使用此功能创建自己的类
Boolean b = false;
Integer i = 0;
Double pi = 3.1416;
不,字符串实例化由编译器隐式处理。只有字符串和数组类具有此属性
String greeting = "Hello world!";
char[] helloArray = { 'h', 'e', 'l', 'l', 'o', '.' };
允许隐式实例化基本包装器类型的对象,但这也是编译器处理的特殊情况。您不能使用此功能创建自己的类
Boolean b = false;
Integer i = 0;
Double pi = 3.1416;
不幸的是,你不能这样做 <>与C或C++相反,不能用java语言重载任何操作符,所以没有可能的方法来做类似< /P>的事情。
Foo myFoo = 1
对于字符串类:
String s = "implicit instantiation"
对于开发人员来说,这就是sugar sintax,在幕后是编译器执行“脏”工作,并执行类似的操作(记住有一个字符串池):
这同样适用于其他一些类型,如数组或数字包装…不幸的是,您无法做到这一点 <>与C或C++相反,不能用java语言重载任何操作符,所以没有可能的方法来做类似< /P>的事情。
Foo myFoo = 1
对于字符串类:
String s = "implicit instantiation"
对于开发人员来说,这就是sugar sintax,在幕后是编译器执行“脏”工作,并执行类似的操作(记住有一个字符串池):
这同样适用于一些其他类型,如数组或数字包装…对于对象的每个实例,都需要一个构造函数,而构造函数是构造和初始化方法的特殊方法。例如:
String s; // Is not initialized and it's nos constructed.
Integer i = 3;
Double d = 3.3d;
那么,如何在java中构造一个新对象呢?使用新操作符轻松创建新对象
s = new String("qwe"); // New object constructed
但有一点很多新手都感到困惑。为什么我可以这样做:
String s= "asdfasd;"
因为String
在Java中是一个特例,您不需要像类中的所有基本变量一样添加新操作符。例如:
String s; // Is not initialized and it's nos constructed.
Integer i = 3;
Double d = 3.3d;
等等。对于对象的每个实例,您都需要一个构造函数,而构造函数是构造和初始化方法的特殊方法。例如:
String s; // Is not initialized and it's nos constructed.
Integer i = 3;
Double d = 3.3d;
那么,如何在java中构造一个新对象呢?使用新操作符轻松创建新对象
s = new String("qwe"); // New object constructed
但有一点很多新手都感到困惑。为什么我可以这样做:
String s= "asdfasd;"
因为String
在Java中是一个特例,您不需要像类中的所有基本变量一样添加新操作符。例如:
String s; // Is not initialized and it's nos constructed.
Integer i = 3;
Double d = 3.3d;
等等。简言之:你不能。String
是一个特殊的对象,它周围有一些语法糖——字符串文本、连接运算符,能够在开关
情况下使用。只有字符串才有这种能力(数组也有“文字”)。简而言之,你不能。String
是一个特殊的对象,它周围有一些语法糖-字符串文字、连接运算符,能够在开关
情况下使用。只有字符串才有这种能力(数组也有“文字”)。我们不能也做整数i=5
吗?@Shashwat哦,是的,让我补充一下。我们不能也做整数i=5
吗?@Shashwat哦,是的,让我补充一下。