由此引出了这个问题:new 后的类名加一个括号(例如:String str = new String("");)是调用了该类的构造函数还是 java规定实例化类对象时必须是这个格式?
如果是调用了类的构造函数,这种调用并未通过某个对象,而且构造函数也不是static的,这是否与“一切皆为对象”思想矛盾?
4 个解决方案
#1
don't understand what you say, too 高深了
#2
必须是这个格式。
这种语法两件事:为对象分配内存,调用构造方法。
不矛盾,内部还是通过对象调用的,不过语法如此设置而已。
这种语法两件事:为对象分配内存,调用构造方法。
不矛盾,内部还是通过对象调用的,不过语法如此设置而已。
#3
构造函数问权限为包权限时 包外当然不能访问该类了 protected只准在本包内访问。
当用new关键字的时候的加载顺序:
加载该该类的字节码 -->初始化静态域-->调用构造函数(对成员变量进行初始化)-->调用其他方法
#4
获益不浅,谢谢各位了!
#1
don't understand what you say, too 高深了
#2
必须是这个格式。
这种语法两件事:为对象分配内存,调用构造方法。
不矛盾,内部还是通过对象调用的,不过语法如此设置而已。
这种语法两件事:为对象分配内存,调用构造方法。
不矛盾,内部还是通过对象调用的,不过语法如此设置而已。
#3
构造函数问权限为包权限时 包外当然不能访问该类了 protected只准在本包内访问。
当用new关键字的时候的加载顺序:
加载该该类的字节码 -->初始化静态域-->调用构造函数(对成员变量进行初始化)-->调用其他方法
#4
获益不浅,谢谢各位了!