久点
2017-05-10 16:03
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有什么关系?
因为 public demo5() 这个是 demo5 类的构造方法,每当你 new 一个 demo5 对象时,就会调用对象的构造方法来创建并初始化一个对象。new demo5(),调用的就是构造方法。
第二段代码中 内部的demo5为demo5类的构造方法,当你new demo5的对象时首先会调用构造方法(如果不声明构造方法。那么构造函数还是会有。默认为不参构造方法)。当你第一段代码new了demo5对象就执行了demo5构造方法然后又执行了asd()方法
创建demo5对象时,对对象进行实例化,会先调用类的构造方法对它进行实例化,所以会打印出来a,然后再调用asd方法,会打印b.
Java入门第二季
531427 学习 · 6328 问题
相似问题