所以我有两节课:Property
和Houses
。Property
是抽象超类,Houses
是其子类。
这是代码 Property
public abstract class Property{
String pCode;
double value;
int year;
public Property(String pCode, double value , int year){
this.pCode = pCode;
this.value = value;
this.year = year;
}
public Property(){
pCode = "";
value = 0;
year = 0;
}
public abstract void depreciation();
//Accessors
private String getCode(){
return pCode;
}
private double getValue(){
return value;
}
private int getYear(){
return year;
}
//Mutators
private void setCode(String newCode){
this.pCode = newCode;
}
private void setValue(double newValue){
this.value = newValue;
}
private void setYear(int newYear){
this.year = newYear;
}
public String toString(){
return ("Code: " + getCode() + "\nValue: " + getValue() + "\nYear: " + getYear());
}
}
这是代码 Houses
public class Houses extends Property{
int bedrooms;
int storeys;
public Houses(){
super(); // call constructor
this.bedrooms = 0;
this.storeys = 0;
}
public Houses(String pCode , double value , int year ,int bedrooms , int storeys){
super(pCode,value,year);
this.bedrooms = bedrooms;
this.storeys = storeys;
}
//accessors
private int getBedrooms(){
return bedrooms;
}
private int getStoreys(){
return storeys;
}
private void setBedrooms(int bedrooms){
this.bedrooms = bedrooms;
}
private void setStoreys(int storeys){
this.storeys = storeys;
}
public void depreciation(){
this.value = 95 / 100 * super.value;
System.out.println(this.value);
}
public String toString(){
return (super.toString() + "Bedroom:" + getBedrooms() + "Storeys:" + getStoreys());
}
}
我现在的问题是在方法中depreciation
,每当我尝试在main
方法中运行它时,如下所示
public static void main(String[] args) {
Houses newHouses = new Houses("111",20.11,1992,4,2);
newHouses.depreciation();
}
它打印出0.0。为什么不打印20.11?我该如何解决?
==============================================
编辑:感谢您修复我的愚蠢错误>。<
但是,只要说我的财产正在使用
private String pCode;
private double value;
private int year;
现在我无法访问它们,因为它们是私有访问权限,还有其他方法可以访问它们吗?
那是因为95 / 100
是结果的整数除法0
。试试看
0.95 * super.value
要么
95.0 / 100 * super.value
我的子类是,我需要在我的超类中使用字段和。我知道如何在子类中使用超类变量,但我必须学会如何做相反的事情?谢谢。
我是Java的初学者。这是我的代码 有没有可能,如果有,请告诉我怎么做?我对这个问题的标题有一些问题,所以请建议我一个合适的,因为我已经解释了我在代码中想要的一切。
问题内容: 我有这个课: 有什么方法可以使用自变量访问静态变量?我宁愿这样做,因为长名称不可读。 问题答案: 使用。这对新旧样式类均适用。
下面是静态嵌套类
你可以使用与写入实例变量值相同的语法来读取实例变量的值: int x = blank.x; 表达式blank.x表示“进入名为blank的对象中并取得x的值”。这里我们把这个值赋值给局部变量x。注意,名为x的局部变量和名为x的实例变量并不冲突。点号的作用就是明确地区分你所指的是哪一个变量。 可以将点记号用作C++表达式的一部分,所以下面代码是合法的: cout << blank.x <
问题内容: 如何从匿名类的方法内部访问? 问题答案: 如何从匿名类的方法内部访问? 您只需要访问它们即可: 更重要的是:为什么这对您不起作用?