[英]Java not printing?
當我嘗試調用我的方法時,它會打印 0,這是為什么? am.area() "但如果我在公式中取出 baseprice 變量,它會正確打印出我該如何更正?我也想嘗試 Associaton,但我不知道如何使用它。
class Base {
double baseprice;
public void setBaseprice(int bp) {
baseprice = bp;
}
public double getBaseprice() {
return baseprice;
}
}
class ID{
int agentId;
ID(int Id) {
this.agentId=Id;
}
}
class Agent{
String agentName;
Agent(String name){
this.agentName=name;
}
}
class AreaMinor extends Base {
double sides;
public AreaMinor(int s) {
sides = s;
}
public void area() {
double sum = sides*sides*(4+Math.sqrt(3))/4;
double area = sum*baseprice;
System.out.print(area);
}
}
public class Main {
public static void main(String args[]) {
java.util.Scanner kbd = new java.util.Scanner(System.in);
System.out.print("Enter your lot type ");
lot = kbd.nextInt();
if(lot == 1) {
System.out.print("Enter the Sides ");
int side = kbd.nextInt();
AreaMinor am = new AreaMinor(side);
am.area(); //why does it this line print 0
baseprice 默認設置為 0,則結果為 0xK = 0 。 普通的
你應該添加am.setBaseprice(3);
在 main 方法中(如果您希望 baseprice 為 3),否則將其初始化為 0
或者,您可以在AreaMinor
的構造函數中調用 setter
另請注意,如果 baseprice setter 接受 int 值,我認為沒有理由將其鍵入 double
在您的Base
類中,您已將baseprice
變量聲明為 double 並且未通過調用該構造函數顯式聲明值。
因此,問題是您尚未初始化baseprice
變量,因此,默認情況下為 0.0
...
AreaMinor am = new AreaMinor(side);
am.setBasePrice(3);
am.area();
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.