疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

java构造函数简要分析


 

       java在创建对象的时候会同时调用这个对象的构造函数完成对象的初始化工作。

  使用构造函数时需要记住:

  1.构造函数必须与类同名(如果一个源文件中有多个类,那么构造函数必须与公共类同名)

  2.每个类可以有一个以上的构造函数

  3.构造函数可以有0个、1个或1个以上的参数

  4.构造函数没有返回值

  5.构造函数总是伴随着new 新对象操作一起调用

  看看例子:

  public class TestA

  {

  /**

  * 无参数的构造函数

  */

  public TestA()

  {

  System.out.println("无参数的构造函数!");

  }

  /**

  * 带有String参数的构造函数

  */

  public TestA(String msg)

  {

  System.out.println("带有String参数的构造函数!"+msg);

  }

  public static void main(String[] args)

  {

  // TODO 自动生成的方法存根

  TestA test = new TestA();//新建无参数对象

  TestA test1 = new TestA("hello");//新建String参数对象

  }

  }

  结果为:

  无参数的构造函数!

  带有String参数的构造函数!hello

  使用super调用父类构造器的语句必须是子类构造器的第一条语句

  如果子类构造器没有显式地调用父类的构造器,则将自动调用父类的默认(没有参数)的构造器。

  例如:

  public class TestB extends TestA//集成TestA

  {

  public TestB()

  {

  System.out.println("没有参数的构造函数");

  }

  public TestB(String msg)

  {

  super(msg);

  }

  public static void main(String[] args)

  {

  // TODO 自动生成的方法存根

  TestB test3 = new TestB();

  TestB test2 = new TestB("hello");

  }

  }

  输出结果是:

  无参数的构造函数!

  没有参数的构造函数

  带有String参数的构造函数!hello

  一开始就调用了TestA的无参数构造函数。