Nel seguente esempio viene mostrato il funzionamento dell’ ereditarietà. Si dà la possibilità all’utente di calcolare il volume di 4 forme a scelta. Per ogni forma verranno richiesti dei valori.
import java.util.Scanner; import java.io.IOException; import java.util.InputMismatchException; class Forma { private double lato; private double altezza; private double profondita; public Forma() { this.lato = lato; this.altezza = altezza; this.profondita = profondita; } public double getLato() { return lato; } public double setLato(int lato) { return this.lato = lato; } public double getAltezza() { return altezza; } public double setAltezza(int altezza) { return this.altezza = altezza; } public double getProfondita() { return profondita; } public double setProfondita(int profondita) { return this.profondita = profondita; } } class Piramide extends Forma { public static void calcVolume(Scanner console) { System.out.println("Inserisci il valore del lato della base:"); double lato = console.nextDouble(); double base= Math.pow(lato, (double)2); System.out.println("Inserire altezza:"); double altezza = console.nextDouble(); System.out.println("base="+base); System.out.println("Il volume della piramide e':" + ((base*altezza)/3)); System.out.println("Scegli su quale forma calcolare il volume: ('?') per help)"); } } public class CalcVol { static Scanner console = new Scanner(System.in); public static void main(String[] args) throws IOException { try { System.out.println("Scegli su quale forma calcolare il volume: ('?' per help)"); System.out.println("a. Cubo."); System.out.println("b. Parallelepipedo."); System.out.println("c. Sfera."); System.out.println("d. Piramide."); System.out.println("q. QUIT"); System.out.print("> "); while (console.hasNext()) { String scelta = console.next(); switch (scelta) { case "a": cuboVol(); System.out.print("> "); break; case "b": paraVol(); System.out.print("> "); break; case "c": sferaVol(); System.out.print("> "); case "d": Piramide.calcVolume(console); System.out.print("> "); break; case "?": System.out.println("****HELP****"); System.out.println("a. Cubo."); System.out.println("b. Parallelepipedo."); System.out.println("c. Sfera."); System.out.println("d. Piramide."); System.out.print("> "); break; case "q": System.out.println("Uscita."); return; default: System.out.println("Hai inserito una scelta errata."); } } } catch (InputMismatchException e) { System.out.println("Inserimento errato"); } } public static void cuboVol() { System.out.println("inserisci il valore del lato:"); double lato = console.nextDouble(); System.out.println(Math.pow(lato, (double)3)); System.out.println("Scegli su quale forma calcolare il volume: ('?') per help"); } public static void paraVol() { System.out.print("Inserisci il lato:"); double lato = console.nextDouble(); System.out.print("Inserisci altezza:"); double altezza = console.nextDouble(); System.out.print("Inserisci profondità"); double profondita = console.nextDouble(); System.out.println("Il volume del parallelepipedo e': " + lato * altezza * profondita); System.out.println("Scegli su quale forma calcolare il volume: ('?') per help"); } public static void sferaVol() { System.out.println("Inserire il raggio:"); double raggio = console.nextDouble(); double volume = (Math.PI * (Math.pow(raggio, (double) 3))* 4) / 3; System.out.println("Il volume della sfera e': " + volume); System.out.println("Scegli su quale forma calcolare il volume: ('?') per help"); } }
Output video:
Scegli su quale forma calcolare il volume: (‘?’ per help)
a. Cubo.
b. Parallelepipedo.
c. Sfera.
d. Piramide.
q. QUIT
> d
Inserisci il valore del lato della base: 12
Inserire altezza: 12
base= 144.0
Il volume della piramide e’: 576.0
Scegli su quale forma calcolare il volume: (‘?’) per help)
> q
Uscita.
Leave a Comment
Devi essere connesso per inviare un commento.