繁体   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