2016-03-22 12 views
-1

在Jcreator中,這裏有12個錯誤,我不知道如何解決它。它說「非法開始expr ....」。如何在Java中調試「非法啓動表達式」?

如果我改變了一些東西,突然發現50個錯誤。

public class Practica_figura { 
    Class Figura() { 
     private float base; 
     private float altura; 
     private float radio; 
    } 

    public void asignar(float ba, float al, float ra) { 
     base = ba; 
     altura = al; 
     radio = ra; 
    } 

    class Cuadrado extends Figura() 
    { 
     private float base; 
     private float altura; 

     public void calcular_area(float b, float a) { 
      float res = base * altura; 
     } 

     public void calcular_perimetro(float a) { 
      float resp = 4 * a; 
     } 

     public void rareac() { 
      return area; 
     } 

     public void rperic() { 
      return perimetro; 
     } 
    } 

    class Triangulo extends Figura() 
    { 
     private float base; 
     private float altura; 
     private float la; 
     private float lb; 
     private float lc; 

     public void asignar(float a, float b, float c) { 
      la = a; 
      lb = b; 
      lc = c; 
     } 

     public void calcular_area(float b, float a) { 
      float res = (base * altura)/2; 
     } 

     public void calcular_perimetro(float a) { 
      float resp = 4 * a; 
     } 

     public void rareat() { 
      return area; 
     } 

     public void rperit() { 
      return perimetro; 
     } 

    } 

    public static void main(String[] args) { 
     // TODO code application logic here 

     float base = 0, altura = 0, radio = 0; 
     JOptionPane.showMessageDialog(null, "Programa para calcular área y perímetro"); 
    } 
} 
+0

如果類名是Practica_figura,那麼構造函數必須是Practical_figura,並且它前面沒有「Class」。 – KevinO

回答

0

首先,該類沒有很好的定義。

public class Practica_figura 
{ 
    private float base; 
    private float altura; 
    private float radio; 

    public Practica_figura() 
    { 
    } 



    public void asignar(float ba, float al, float ra) 
    { 
     base = ba; 
     altura = al; 
     radio = ra; 
    } 

    //edits assuming you want inner classes 
    class Figura 
    { 
     private float base, altura, radio; 

     // you will need getters/setters for the variables 
    } 

    class Cuadrado extends Figura 
    { 
     // insert class logic here 
    } 

    class Triangulo extends Figura 
    { 
     // insert class logic here 
    } 
} 

其次,你在你的子類中映射變量,這種方法可能會讓事情變得混亂。

+0

這是真的不清楚你想完成什麼。就像我和@Samzerge指出的那樣,你的基類定義很奇怪。然而,假設目標是具有內部類Figura,Cuadrado和Triangulo的Practica_figura類,那麼您需要按照上面所做的編輯進行操作。然而,你在Figura類中沒有提供任何獲得者/設置者,所以基地,altura和無線電將是無用的。 Practica_figura中的asignar方法無法訪問Figura類中的私有變量。你在你的孩子班中隱藏變量。 – KevinO

+0

你是什麼意思與「陰影變量」? –

+0

問題是這樣的: 「類的正方形,圓形和三角形必須計算面積和周長 ,那麼將該功能置於通用類中是有意義的,如圖 執行此操作。」 明顯使用繼承 –

0

有一個正確的類定義的變化

public class Practica_figura { Class Figura(){

public class Figura{

我真的不明白你想幹什麼,如果你想要的是一個構造函數那麼你將不得不補充:

public Figura(){ 
} 
相關問題