2011-07-26 55 views
0

幫助我不得不做一個Java程序,說:一個簡單的Java程序我需要

在Java編寫一個程序來實現繼承。您的程序應該具有以下結構

  1. 創建一個基類以保存兩個整數和一個顯示它們的方法。
  2. 在派生類中添加另一個整數並顯示它。
  3. 在相同的派生類中創建一個方法來添加三個數字。
  4. 將值傳遞給整數並顯示結果。

,我並不擅長Java,所以我不知道我所做的是對還是錯還是什麼!我覺得我不明白需要什麼。以下是我想出了:

public class firstclass { 
    int a=5; 
    int b=6; 

    public void Display(){ 
     System.out.println(a+b); 
    } 
} 

public class secondclass extends firstclass { 
    int z=0; 

    public void Displaysecond(){ 
     System.out.println(z); 
    } 

    public void add(){ 
     z=a+b; 
     System.out.println(z); 
    } 
} 

public class mainOne { 
    public static void main(String[] args) { 
     firstclass call = new firstclass(); 
     secondclass call2 = new secondclass(); 

     call.Display(); 
     call2.Displaysecond(); 
     call2.add(); 
    } 
} 

它運行沒有任何問題,但我得到 「11」 爲「的System.out.println(A + B );」而a = 5和b = 6。
我是否正確地處理這個問題?

+0

添加功課標籤可能? –

+11

是不是5 + 6 = 11? –

+0

@Ziyao很確定OP想要5 + 6 = 56 – dlev

回答

3

你有幾個問題。正如Grammin提到的,你的增加功能不是你的老師想要的。你的老師希望你到a,b和z。所以

public void add(){ 
    int sum = a + b + z; 
    System.out.println(sum); 
} 

或者,你可以做void add()int add(),並返回sum

其次,你沒有遵循Java約定。您的變量需要更加不恰當的命名,您的類需要以大寫字母開頭,您的方法需要以小寫字母開頭。

也許你應該命名你的類FirstClass,SecondClass和MainClass?

你的方法:顯示(),displaySecond(),並添加()

你的變量:A,B,C或NUM1,NUM2,NUM3。 (爲了一致性)

此外,call.display()應該產生與call2.display()相同的結果,因爲SecondClass是FirstClass的子類。爲了更好地理解繼承,請閱讀this

附註:如果您正在進行某種內嵌數學運算,您應該在括號()中添加數字以進行說明和安全。例如

public void display(){ 
    System.out.println((a + b)); 
} 

,而不是

public void display(){ 
    System.out.println(a+b); 
} 
+0

偉大的提示,我真的很喜歡他們,並沒有他們,謝謝 – user863751

+1

括號的雙套是不必要的。 –

+0

你確定嗎?我知道我以前遇到過這個問題。我想如果你有任何引號,你確實需要嵌套的括號。 –

3

一切看起來都不錯,除了:

3. Create a method in the same derived Class to add the three numbers. 

public void add() 
{ 
    z=a+b; 
    System.out.println(z); 
} 

這種方法增加了A和B,但然後把它沿z。它不返回任何東西,所以應該是這樣的:

public int add() 
{ 
    return a+b+z; 
} 

然後在主你應該是這樣的:

System.out.println(call2.add()); 
+0

謝謝@Grammin我完全忘記了,集結感謝的人,但關於「System.out.println(a + b)」爲什麼我得到11? sholdent我得到5 6? – user863751

+0

System.out.println(a + b) - 您將得到11,因爲a + b實際上被評估爲數學運算。如果你想得到5 6,那麼你會做一些像System.out.println(a +「」+ b)。在這種情況下,+符號被視爲字符串concat –