我正在寻找一个和我在facebook上找到的东西并且感到困惑 “是否可以在方法中声明构造函数”
答案 0 :(得分:2)
简答:不。
答案很长:这来自Java Language Specification, §8.8:
构造函数用于创建作为类实例的对象。
在所有其他方面,构造函数声明看起来就像没有结果的方法声明(§8.4.5)。
构造函数声明不是成员。它们永远不会被继承,因此不会被隐藏或覆盖。
声明如下:
ConstructorDeclaration:
ConstructorModifiers(opt) ConstructorDeclarator
Throws(opt) ConstructorBody
ConstructorDeclarator:
TypeParameters(opt) SimpleTypeName ( FormalParameterList(opt) )
ConstructorDeclarator
只能住在class body declaration:
ClassBody:
{ ClassBodyDeclarations(opt) }
ClassBodyDeclarations:
ClassBodyDeclaration
ClassBodyDeclarations ClassBodyDeclaration
ClassBodyDeclaration:
ClassMemberDeclaration
InstanceInitializer
StaticInitializer
ConstructorDeclaration <--
ClassMemberDeclaration:
FieldDeclaration
MethodDeclaration
ClassDeclaration
InterfaceDeclaration
;
MethodDeclaration
没有ConstructorDeclaration
的符号,这就是为什么你不能在方法中声明构造函数的原因。
答案 1 :(得分:1)
您无法在方法中声明构造函数。
构造函数和方法都是对象的组件。您的对象具有在实例化时被调用的构造函数。实例化后,您的对象将具有定义它的属性以及使用它们执行操作的方法。
如果您尝试将构造函数放入声明中,则会出现编译错误。
这来自于Sun认证测试的几年实践和研究。
答案 2 :(得分:0)
不可能.java不支持内部方法concept.Constructor也像一个方法。只能在类中声明构造函数。
答案 3 :(得分:0)
构造函数是类似于main方法的方法。构造函数用于初始化类的对象,它没有返回值。
答案 4 :(得分:0)
根本不可能。
在为class
创建对象时,必须调用构造函数。
在实例中你将如何调用该方法,即构建constructor
?
有道理吗?