我正在寻找我在 facebook 中找到的答案并感到困惑“是否可以在方法中声明构造函数”
问问题
690 次
5 回答
2
简短的回答: 没有。
长答案:这来自Java 语言规范,§8.8:
构造函数用于创建作为类实例的对象。
在所有其他方面,构造函数声明看起来就像没有结果的方法声明(第 8.4.5 节)。
构造函数声明不是成员。它们永远不会被继承,因此不会被隐藏或覆盖。
它是这样声明的:
ConstructorDeclaration:
ConstructorModifiers(opt) ConstructorDeclarator
Throws(opt) ConstructorBody
ConstructorDeclarator:
TypeParameters(opt) SimpleTypeName ( FormalParameterList(opt) )
AConstructorDeclarator
只能存在于类主体声明中:
ClassBody:
{ ClassBodyDeclarations(opt) }
ClassBodyDeclarations:
ClassBodyDeclaration
ClassBodyDeclarations ClassBodyDeclaration
ClassBodyDeclaration:
ClassMemberDeclaration
InstanceInitializer
StaticInitializer
ConstructorDeclaration <--
ClassMemberDeclaration:
FieldDeclaration
MethodDeclaration
ClassDeclaration
InterfaceDeclaration
;
AMethodDeclaration
对 a 没有符号ConstructorDeclaration
,这就是为什么不能在方法内声明构造函数的原因。
于 2013-06-29T06:47:04.373 回答
1
您不能在方法内声明构造函数。
构造函数和方法都是对象的组成部分。您的对象有一个构造函数,当您实例化它时会调用该构造函数。一旦被实例化,你的对象就有了定义它的属性和方法。
如果您尝试将构造函数放入声明中,则会出现编译错误。
这来自于多年来对 Sun 认证测试的实践和研究。
于 2013-06-29T06:46:57.020 回答
0
不,这是不可能的。java 不支持内部方法的概念。构造函数也像一个方法。构造函数只能在一个类中声明。
于 2013-06-29T06:44:45.407 回答
0
构造函数是一种类似于 main 方法的方法。构造函数用于初始化类的一个对象,它没有返回值。
于 2013-06-29T06:47:07.993 回答
0
根本不可能。
为 a 创建对象时必须调用构造函数class
。
如果没有实例,您将如何调用该方法,该方法正在构建constructor
?
有什么意义吗?
于 2013-06-29T06:51:04.837 回答