如何在第二个构造函数中调用构造函数?

时间:2016-11-27 21:32:28

标签: java constructor

我被指示:

  • 创建第二个Parrot构造函数,它将Integer作为唯一参数。

  • 调用其他构造函数提供" Polly"作为名称,将Integer参数作为年龄。

在此方法中:

public class Parrot extends Omnivore
{   

Parrot()   
{
    name = "Billy";
    age = 6;
    noise = "Argh!";
}    
Parrot(int i)   
{
    i = age;
    //Call other constructor providing "Polly" as name?

} 

}

我对如何做到这一点感到有些困惑,我之前从未真正遇到过多个构造函数的问题,所以对此如何做的任何帮助都将非常感谢,谢谢。

2 个答案:

答案 0 :(得分:0)

第一步,制作一个带Stringint的构造函数。

Parrot(String name, int age)   
{
    this.age = age;
    this.name = name;
} 

第二步,使用硬编码的默认nameage调用该构造函数。使用this。像

Parrot(int i)   
{
    this("Polly", i);
} 

答案 1 :(得分:0)

当我们要在单个构造函数中执行多个任务而不是在单个构造函数中为每个任务创建代码时,使用此过程,而是为每个任务创建一个单独的构造函数并使其链条化,从而使程序更具可读性 使用此方法,您可以

让我们看一下Temp类示例

 class Temp 
{ 
// default constructor 1 
// default constructor will call another constructor 
// using this keyword from same class 
Temp() 
{ 
    // calls constructor 2 
    this(5); 
    System.out.println("The Default constructor"); 
} 

// parameterized constructor 2 
Temp(int x) 
{ 
    // calls constructor 3 
    this(5, 15); 
    System.out.println(x); 
} 

// parameterized constructor 3 
Temp(int x, int y) 
{ 
    System.out.println(x * y); 
} 

public static void main(String args[]) 
{ 
    // invokes default constructor first 
    new Temp(); 
} 
}