是否可以在方法中声明构造函数

时间:2013-06-29 06:43:21

标签: java

我正在寻找一个和我在facebook上找到的东西并且感到困惑 “是否可以在方法中声明构造函数”

5 个答案:

答案 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

有道理吗?