0

我有这个问题,这是给我的图表,我已经设法提出了一个解决方案,但实际问题本身是要求我实现 get 和 set 方法,我不确定它们是否适用于这里,

在此处输入图像描述

在此处输入图像描述

这只是一个有点长的问题的一部分,不想让它看起来像我希望用户在这里通过粘贴整个问题来完成我的作业,但只是一个疑问,如果确实可以实现 get 和 set 方法怎么能我这样做?

所以这是我的代码,到目前为止我所拥有的

public abstract class Property 
{
    private static int autonumber = 0, propID,area,price;
    private String address;

    public Property(String addr, int area,int price)
    {
        autonumber++;
        propID = autonumber;
        this.area = area;
        this.price = price;
    }
     public abstract double calculateMiscFee();

     public int getArea()
     {
         return area;
     }

     public void setArea()
     {

     }
//     public double calculateMiscFee()
//     {
//         return 100*
//     }
}

这是我拥有的最新代码

public abstract class Property 
{
    private static int autonumber = 0;
    private int propID;
    private int area;
    private double price;
    private String address;
    private int district;

    public Property(String addr, int area,double price, int district)
    {
        autonumber++;
        propID = autonumber;
        this.area = area;
        this.price = price;
        this.district = district;
        this.address = addr;

    }
     public abstract double calculateMiscFee();

     public int getArea()
     {
         return area;
     }

     public void setArea(int a)
     {
         area = a;
     }

      public String getAddress()
     {
         return address;
     }

     public void setAddress(String add)
     {
         address = add;
     }

     public double getPrice()
     {
         return price; 
     }
     public  void setPrice(double p) 
     { 
          price = p;
     }

     public int getDistrict()
     {
         return district;
     }

     public  void setDistrict(int disc) 
     { 
          district = disc;
     }
//     public double calculateMiscFee()
//     {
//         return 100*
//     }

      public String toString()
      {

      }

}
4

3 回答 3

1

propID、面积和价格不应该是static. static变量在类的所有实例之间共享,并且这些变量应该是每个实例,就像地址一样。

如果一个类声明了一个abc类型为 的变量String,则 getter 和 setterabc的形式如下所示:

public String getAbc() {
    return abc;
}

public void setAbc(String newAbc) {
    /* Potentially do some validation of the new value
     * For example make sure it's not null, or inside reasonable ranges
     * (A price shouldn't be negative, etc.)
     */
    abc = newAbc;
}

toString()是一个已经存在于所有类中的方法,但您仍然可以覆盖它。例如:

class MyClass {
    private int myInt;

    public MyClass(int myInt) {
        this.myInt = myInt;
    }

    @Overrides
    public String toString() {
        return "MyClass with value " + myInt;
    }
}
于 2012-10-10T07:52:24.987 回答
0

因为您需要在此类之外使用的所有私有字段的 getter 和 setter,例如客户需要 propertyID。因此,您必须为 propertyID 编写 getter 和 setter。希望这能满足你的问题。

于 2012-10-10T07:12:17.950 回答
0

您的属性必须单独声明,例如

private static int autonumber = 0,
private static int propID = 0;
private static int area = 0;
private static int price = 0;

然后通过仅附加 get 或 set 并将变量的第一个字母大写来添加 getter 和 setter 。像这样

getAutonumber
setAutonumber
等等

最后,如果它是一个 getter,该方法应该返回不带参数的 int。如果它是一个 setter,该方法应该返回 void 和一个 int 参数。

像这样:

public static int getAutoNumber() { return autonumber; }
public static void setAutoNumber(int an) { autonumber = an; }

public static int getPropID() { return propID; }
public static void setPropID(int pi) { propID = pi; }

public static int getArea() { return area; }
public static void setArea(int a) { area = a; }

public static int getPrice() { return price; }
public static void setPrice(int p) { price = p;}

于 2012-10-10T07:30:25.443 回答