变异器是否适用于此?

时间:2012-10-10 07:00:11

标签: java abstract-class getter-setter

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

enter image description here

enter image description here

这只是一个有点长的问题的一部分,不想让我看起来像我希望我的作业通过粘贴整个问题由用户完成,但只是一个疑问,如果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()
      {

      }

}

3 个答案:

答案 0 :(得分:1)

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

如果某个类声明类型为abc的变量String,则abc的getter和setter将如下所示:

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;
    }
}

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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

然后添加getter& setter只需追加get或set并将变量的第一个字母大写。就像这样

getAutonumber
setAutonumber
等。

最后, 如果它是一个getter,该方法应返回int而不带参数。 如果它是一个setter,该方法应返回void with和参数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;}