久点
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入门第二季 升级版
530558 学习 · 6091 问题
相似问题