问答详情
源自:8-6 Java 中的构造方法

构造方法与相同名称的类和方法的关系

package first;
public class demo5qidong {
public static void main(String[] args) {
// TODO Auto-generated method stub
demo5 asd=new demo5();
asd.asd();
}
}

在上面代码执行后,会显示a和b。

package first;
public class demo5 {
public demo5(){
System.out.println("a");
}
void asd(){
System.out.println("b");
}
}

我想知道第二段代码中外面的demo5类与它内部的demo方法的问题,我创建了demo5对象,不是由外面的demo5类得来的吗?为什么会显示a?和内部的demo5有什么关系?

提问者:久点 2017-05-10 16:03

个回答

  • muhlenXi
    2017-05-10 16:27:23
    已采纳

    因为 public demo5() 这个是 demo5 类的构造方法,每当你 new 一个 demo5 对象时,就会调用对象的构造方法来创建并初始化一个对象。new demo5(),调用的就是构造方法。

  • 谜之米
    2017-05-10 17:24:27

    第二段代码中 内部的demo5为demo5类的构造方法,当你new demo5的对象时首先会调用构造方法(如果不声明构造方法。那么构造函数还是会有。默认为不参构造方法)。当你第一段代码new了demo5对象就执行了demo5构造方法然后又执行了asd()方法

  • qq_人在征途_1
    2017-05-10 16:27:16

    创建demo5对象时,对对象进行实例化,会先调用类的构造方法对它进行实例化,所以会打印出来a,然后再调用asd方法,会打印b.