我有这个问题,这是我给出的图表,我已经设法提供了解决方案,但实际的问题本身是要求我实现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()
{
}
}
答案 0 :(得分:1)
propID,面积和价格不应为static
。 static
变量在类的所有实例之间共享,这些变量应该是每个实例,就像地址一样。
如果某个类声明类型为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;}