public class Ellisse {
// variabili istanza private double asseMaggiore, asseMinore; // costruttori public Ellisse() { this.asseMaggiore = 0.0; this.asseMinore = 0.0; } public Ellisse(double maggiore, double minore) { this.asseMaggiore = maggiore; this.asseMinore = minore; } // metodi istanza public void setAsseMaggiore(double maggiore) { this.asseMaggiore = maggiore; } public void setAsseMinore(double minore) { this.asseMinore = minore; } public double getAsseMaggiore() { return this.asseMaggiore; } public double getAsseMinore() { return this.asseMinore; } public double calcolaArea() { return Math.PI * this.asseMaggiore * this.asseMinore; }
}
public class Cerchio extends Ellisse {
public Cerchio(double raggio) { // Invochiamo direttamente un costruttore specifico della superclasse, // imponendo che asseMinore = asseMinore = raggio. // Ricordate che questa istruzione deve essere il primo enunciato del // costruttore della sottoclasse perchè altrimenti, la JVM invoca al posto // vostro come prima istruzione super(); super(raggio,raggio); } // metodi istanza
// public void setRaggio(double raggio) { // this.setAsseMaggiore(raggio); // this.setAsseMinore(raggio); // }
public double getRaggio() { return this.getAsseMaggiore(); }
public class AreaEllisse {
public static void main(String[] args) { String stringaInput; stringaInput = JOptionPane.showInputDialog("Inserisci il raggio: "); Cerchio cerchioUtente = new Cerchio(Double.parseDouble(stringaInput)); JOptionPane.showMessageDialog(null, "L'area del cerchio avente raggio " + cerchioUtente.getRaggio() + "è " + cerchioUtente.calcolaArea()); System.exit(0); }
}