我无法理解如何隐式创建对象。
示例:
String s = "implicit instantiation";
我可以创建自己的类,可以隐式创建对象吗?
答案 0 :(得分:3)
不,编译器会隐式处理字符串实例化。只有String和Array类具有此属性。
String greeting = "Hello world!";
char[] helloArray = { 'h', 'e', 'l', 'l', 'o', '.' };
Autoboxing允许您隐式实例化原始包装类型的对象,但这也是编译器处理的特殊情况。您无法使用此功能创建自己的类。
Boolean b = false;
Integer i = 0;
Double pi = 3.1416;
答案 1 :(得分:1)
不幸的是你不能这样做!
与C或C ++相反,你不能用java语言重载任何运算符,所以没有办法做类似的事情
Foo myFoo = 1
在字符串类的情况下:
String s = "implicit instantiation"
对于开发人员而言,这是糖sintax,幕后是编译器做的"脏"工作和做某事(记住有一个字符串池):
String s = new String("implicit instantiation")
这同样适用于其他类型的数组,如数组或数字包装......
答案 2 :(得分:0)
对于对象的每个实例,您需要一个构造函数和一个构造函数,它是一个构造和初始化方法的特殊方法。例如:
String s; // Is not initialized and it's nos constructed.
那么如何在java中构造一个新对象?使用new operator
轻松创建新对象!
s = new String("qwe"); // New object constructed
但是这里有许多新手被混淆的东西。为什么我能这样做:
String s= "asdfasd;"
因为String
是Java中的一个特例,并且您不需要像所有类的原始变量一样添加new operator
。例如:
Integer i = 3;
Double d = 3.3d;
等等。