簡體   English   中英

嘗試定義這三個構造函數時為什么會出錯? 給出的例子

[英]Why do i get a error when i try to define these three constructors? Examples given

好的,問題是,NetBeans表示已經定義了第二個。 這三個是我在頂部的構造函數,如果set或get方法是它的錯誤,則列出整個程序。 所以我要說的是

public Dog(String initialName)public Dog(String initialBreed)public Dog(double initialWeight)

該錯誤顯示在公共Dog(String initialBreed)上。 我是否濫用了過載方法? 我也必須使用過載方法,它是強制性的。

package dog;


import java.util.*;
public class Dog 
{

// instance variables
private String name;
private String breed;
private double weight;

 public Dog( )
{
name = "no name";
breed = "no breed";
weight = 0.0;
}

public Dog(String initialName)
{
name = initialName;
breed = "no breed";
weight = 0.0;
     }

public Dog(String initialBreed){
   name = "no name";
   breed = initialBreed;
   weight = 0.0;
 }
public Dog(double initialWeight){
    name = "no name";
    breed = "no breed";
    weight = initialWeight;
     }


  public void SetDog(String newName, String newBreed, double newWeight) 
  {
   name = newName;
   breed = newBreed;
   if (newWeight <= 0)
      System.out.println("Error: Negative weight.");
   else
       weight = newWeight;
    }
public void setName(String newName){
    name = newName;
}
public void setBreed(String newBreed){
    breed = newBreed;
}
public void setWeight(double newWeight){
    weight = newWeight;
}

public double getWeight(){
     return weight;
}
public String getName(){
     return name;
}
public String getBreed(){
    return breed;
}

}

問題是你的兩個構造函數采用相同的參數:

public Dog(String initialName)

public Dog(String initialBreed){

他們倆都帶string 您不能擁有兩個具有完全相同名稱和參數的方法。

基於我認為您嘗試做的事情,您可能需要一個構造函數來獲取所有這三個參數:

public Dog(String initialName, String initialBreed, double initialWeight){
public Dog(String initialName)
{
name = initialName;
breed = "no breed";
weight = 0.0;
}

public Dog(String initialBreed){
name = "no name";
breed = initialBreed;
weight = 0.0;
}

您定義的上述兩個構造函數未正確重載,因為它們具有相同類型和參數數量的相同標頭。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM