Errore nella compilazione quando utilizzo BlueJ

di il
6 risposte

Errore nella compilazione quando utilizzo BlueJ

Buongiorno.

Sto' da poco utilizzando il software BlueJ per realizzare dei piccoli programmi.
Mi piace utilizzare BlueJ perche' si capisco i meccanismi della programmazione ad oggetti.
In questo programmino ho realizzato una classe astratta Esempio che utilizza un metodo astratto calcolaArea();.
poi ho realizzato tre classe Cerchio , Triangolo , Rettangolo che implementano Esempio e all'interno c'e' l'Override e l'implementazione del metodo calcolaArea();.
Questo programmino non funziona e non riesco a capire perche' .
In tutte e tre le classi , Cerchio , Triangolo , Rettangolo l'errore e' sempre lo stesso
@Override
public double calcolaArea(){
return (getBase()*getAltezza())/2;
}

Posto soltanto due delle tre classi , Cerchio e Rettangolo , tanto l'errore e' lo stesso per tutte e tre .
Secondo voi qual'e' il problema


Il codice di ogni classe e' il seguente :

Esempio.java

public abstract class Esempio
{
public abstract void calcolaArea();

}


Cerchio.java

import java.lang.Math;
public class Cerchio extends Esempio
{
private double raggio;
public Cerchio(double raggio)
{
this.raggio=raggio;
}
public double getRaggio(){
return raggio;
}
public void setRaggio(double raggio){
this.raggio=raggio;
}
@Override
public double calcolaArea()
{
return Math.PI*(getRaggio()*2);
}
}

Triangolo.java

public class Triangolo extends Esempio
{

double base;
double altezza;
public Triangolo(double base , double altezza){
this.base=base;
this.altezza=altezza;
}
public double getbase(){
return base;

}
public void setbase(double base){
this.base = base;
}
public double getAltezza(){
return altezza;
}
public void setaltezza(double altezza){
this.altezza = altezza;
}



@Override
public double calcolaArea(){
return (getBase()*getAltezza())/2;
}

}
Allegati:
21412_686a5edb92d185d80eab9eb82273d0e3.jpg
21412_686a5edb92d185d80eab9eb82273d0e3.jpg

21412_7d075912625be01a752c43fc49d5c16e.jpg
21412_7d075912625be01a752c43fc49d5c16e.jpg

21412_6cab08a699c530115b16d6cf8aad93cf.jpg
21412_6cab08a699c530115b16d6cf8aad93cf.jpg

6 Risposte

  • Re: Errore nella compilazione quando utilizzo BlueJ

    In Esempio:

    public abstract void calcolaArea();

    In Cerchio/Triangolo

    public double calcolaArea()


    Risultato: NON stai facendo un override. (lo sbaglio è in Esempio, chiaramente)
  • Re: Errore nella compilazione quando utilizzo BlueJ

    Mettendo il void a public double calcoArea() l'errore su l'override sparisce pero' mi da errore sul return :
    @Override

    public void calcolaArea()
    {
    return Math.PI*(getRaggio()*2); // errore incopatible Types : unexpected return value
    }
    }
  • Re: Errore nella compilazione quando utilizzo BlueJ

    FabioJ ha scritto:


    Mettendo il void a public double calcoArea() l'errore su l'override sparisce pero' mi da errore sul return :
    Ho detto che l'errore è in Esempio, non nelle implementazioni.
    Se vuoi far ritornare un valore, secondo te void è appropriato??
  • Re: Errore nella compilazione quando utilizzo BlueJ

    Si . Andbin io infatti ho corretto Esempio . Ho cambiato il void con double .

    Adesso infatti gli errori sono spariti. Mi sono espresso male nel post numero 63 .

    Adesso devo solo finire di completare il main e poi provo a compilarlo.
  • Re: Errore nella compilazione quando utilizzo BlueJ

    Ho eseguito il programma e non capisco perche' vengono ripetuti gli stessi risultati non essendoci neanche un ciclo for .
    Mi aspettovo tre righe di risultato perche' tutte queste righe ripetute

    Risultato :
    il Raggio e' 4.0 L'area e' : 25.132741228718345
    il Raggio e' 3.0 Altezza 4.0 L'area e' : 25.132741228718345
    il Raggio e' 4.0 L'area e' : 25.132741228718345
    il Raggio e' 3.0 Altezza 4.0 L'area e' : 25.132741228718345
    il Raggio e' 4.0 L'area e' : 25.132741228718345
    il Raggio e' 3.0 Altezza 4.0 L'area e' : 25.132741228718345
    il Raggio e' 4.0 L'area e' : 25.132741228718345
    La base e' 3.0 l' Altezza e' 4.0 L'area e' : 6.0
    La Base e' 2.0 l'Altezza e' 3.0L'area e' : 6.0
    il Raggio e' 4.0 L'area e' : 25.132741228718345
    La base e' 3.0 l' Altezza e' 4.0 L'area e' : 6.0
    La Base e' 2.0 l'Altezza e' 3.0L'area e' : 6.0
    il Raggio e' 4.0 L'area e' : 25.132741228718345
    La base e' 3.0 l' Altezza e' 4.0 L'area e' : 6.0
    La Base e' 2.0 l'Altezza e' 3.0L'area e' : 6.0
    il Raggio e' 4.0 L'area e' : 25.132741228718345
    La base e' 3.0 l' Altezza e' 4.0 L'area e' : 6.0
    La Base e' 2.0 l'Altezza e' 3.0L'area e' : 6.0
    il Raggio e' 4.0 L'area e' : 25.132741228718345
    La base e' 3.0 l' Altezza e' 4.0 L'area e' : 6.0
    La Base e' 2.0 l'Altezza e' 3.0L'area e' : 6.0
    il Raggio e' 4.0 L'area e' : 25.132741228718345
    La base e' 3.0 l' Altezza e' 4.0 L'area e' : 6.0
    La Base e' 2.0 l'Altezza e' 3.0L'area e' : 6.0
    il Raggio e' 4.0 L'area e' : 25.132741228718345
    -----------------------------------------------------------------
    La base e' 3.0 l' Altezza e' 4.0 L'area e' : 6.0
    -----------------------------------------------------------------
    La Base e' 2.0 l'Altezza e' 3.0L'area e' : 6.0
    -----------------------------------------------------------------
    il Raggio e' 4.0 L'area e' : 25.132741228718345
    -----------------------------------------------------------------
    La base e' 3.0 l' Altezza e' 4.0 L'area e' : 6.0
    -----------------------------------------------------------------
    La Base e' 2.0 l'Altezza e' 3.0L'area e' : 6.0
    -----------------------------------------------------------------
    il Raggio e' 1.0 L'area e' : 6.283185307179586
    -----------------------------------------------------------------
    La base e' 3.0 l' Altezza e' 4.0 L'area e' : 6.0
    -----------------------------------------------------------------
    La Base e' 2.0 l'Altezza e' 3.0L'area e' : 6.0
    -----------------------------------------------------


    Questo e' il codice del main :

    public class Main {

    public static void main(String[] args)
    {
    Cerchio c = new Cerchio(1);
    Triangolo t = new Triangolo(3,4);
    Rettangolo r = new Rettangolo(2,3);

    System.out.println("il Raggio e' "+c.getRaggio()+ " L'area e' : " + c.calcolaArea());
    System.out.println("-----------------------------------------------------------------");
    System.out.println("La base e' "+t.getbase()+ " l' Altezza e' "+ t.getAltezza() +" L'area e' : " + t.calcolaArea());
    System.out.println("-----------------------------------------------------------------");
    System.out.println("La Base e' "+r.getBase()+ " l'Altezza e' "+r.getAltezza() + "L'area e' : " + r.calcolaArea());
    System.out.println("-----------------------------------------------------------------");
    }

    }
  • Re: Errore nella compilazione quando utilizzo BlueJ

    Scusate . E' una questione di Refresh . Sono uscito e rientrato nel programma e il risultato e' il seguente :



    il Raggio e' 1.0 L'area e' : 6.283185307179586
    -----------------------------------------------------------------
    La base e' 3.0 l' Altezza e' 4.0 L'area e' : 6.0
    -----------------------------------------------------------------
    La Base e' 2.0 l'Altezza e' 3.0L'area e' : 6.0
    -----------------------------------------------------------------
Devi accedere o registrarti per scrivere nel forum
6 risposte