匿名使用者
匿名使用者 發問時間: 電腦與網際網路程式設計 · 1 0 年前

[java]繼承四邊形程式

要寫一隻繼承的程式,可以輸入正方形,長方形的邊長,然後結果可以算出正方形長方形的周長,面積

我寫了兩個class然後在主程式裡用繼承的方式

可是一直跑不出來,程式碼如下

希望厲害的人可以幫我改改一下 謝謝

public class Quadrangle extends JApplet{

public static void main(String args[]) {

int choice;

String input1=JOptionPane.showInputDialog(

"1.正方形\n"+

"2.長方形\n");

choice=Integer.parseInt(input1);

switch(choice){

case 1:

int a;

String input2=JOptionPane.showInputDialog(

"請輸入它的邊長");

a=Integer.parseInt(input2);

Square square;

square= new Square(a);

case 2:

int c;

int b;

String input3=JOptionPane.showInputDialog(

"請輸入它的邊長");

c=Integer.parseInt(input3);

String input4=JOptionPane.showInputDialog(

"請輸入它的高度");

b=Integer.parseInt(input4);

Rectangle rectangle;

rectangle= new Rectangle();

}

}

}

public class Square{

protected int a;

public Square(){

setSquare(0);

}

public Square(int down){

setSquare(down);

}

public void setSquare(int down){

a=down;

}

public int getA(){

return a;

}

public String toString(){

return"邊長為"+4*a+"面積為"+a*a;

}

}

public class Rectangle extends Square{

protected int b;

public Rectangle(){

setB(0);

}

public Rectangle(int height,int down){

super(down);

setB(height);

}

public void setB(int height){

b=(height>=0?height:0);

}

public int getB(){

return b;

}

public String toString(){

return"邊長為"+2*(a+b)+"面積為"+a*b;

}

}

}

已更新項目:

hey 我照你的回答改過了

只是程式還是跑不出來誒

可以在幫我看看嗎

謝謝你 =U=

2 個解答

評分
  • 1 0 年前
    最佳解答

    問題一:

    你的兩個case 中間沒有break. 所以當你選square -> 進入case 1 ,跑完他會直接好case 2

    問題二:

    你的case 2: rectangle= new Rectangle() 應該要改成, rectangle= new Rectangle(c,b) 要不然永遠都是0

    除此之外.你的程式碼沒有問題.

  • PT
    Lv 4
    1 0 年前

    到 www.javaworld.com.tw 找人解,比較快

    參考資料: 自己
還有問題?馬上發問,尋求解答。