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);
}
}