簡體   English   中英

Java不打印?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM