我无法理解对象是如何隐式创建的。
例子:
String s = "implicit instantiation";
我可以创建自己的类,其对象可以隐式创建吗?
我无法理解对象是如何隐式创建的。
例子:
String s = "implicit instantiation";
我可以创建自己的类,其对象可以隐式创建吗?
不,字符串实例化由编译器隐式处理。只有 String 和 Array 类具有此属性。
String greeting = "Hello world!";
char[] helloArray = { 'h', 'e', 'l', 'l', 'o', '.' };
自动装箱允许您隐式实例化原始包装类型的对象,但这也是编译器处理的一种特殊情况。您无法使用此功能创建自己的类。
Boolean b = false;
Integer i = 0;
Double pi = 3.1416;
不幸的是,你不能那样做!
与 C 或 C++ 相反,您不能重载 Java 语言中的任何运算符,因此无法执行类似的操作
Foo myFoo = 1
在字符串类的情况下:
String s = "implicit instantiation"
这对开发人员来说是糖类sintax,在幕后是编译器在做“肮脏”的工作并做类似的事情(记住有一个字符串池):
String s = new String("implicit instantiation")
这同样适用于其他一些类型,如数组或数字包装器......
对于对象的每个实例,您都需要一个构造函数和一个构造函数,它是构造和初始化方法的特殊方法。例子:
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;
等等。