2013-06-29 34 views
-1

我找了一个内部的构造ANS我在Facebook上找到并变得混乱 “是可以声明构造方法里面的”是否有可能宣布一个方法

+0

构造函数是在类中声明的,而不是方法。 – tejas

+0

我很想知道你可能读过甚么会引起这个问题。 – EJP

+1

如果我玩你的话,它__IS__如果我声明一个本地类与它的构造函数在一个方法内,我会声明该构造函数在该方法 – morgano

回答

0

不,这是不可能的.java不支持内部方法concept.Constructor也像一个方法。构造函数只能在类中声明。

0

你不能在方法内声明构造函数。

构造函数和方法都是对象的组件。你的对象有一个构造函数,当你实例化它时会被调用。一旦实例化,您的对象就会拥有用于定义它的属性以及用于执行操作的方法。

如果您尝试将构造函数放入声明中,您将收到编译错误。

这来自几年的Sun认证测试的实践和研究。

+3

*“这是来自多年的Sun认证测试的实践和学习。”* - 当然他们不是*很难...... :-) –

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,这就是为什么你不能声明方法内部的构造函数。

0

构造函数类似于主要方法的一种方法。构造函数用于初始化类的对象,并且它没有返回值。

0

根本不可能。

构造函数必须在为class创建对象时调用。

不知道如何调用该方法,该方法正在构建constructor

有意义吗?

+0

该方法可以是静态的,也可以是另一种类。 – EJP

+0

静态方法是好的,但在OP的想要创建构造函数的方法中,它可能吗? –

相关问题