













Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
interfacce
Tipologia: Appunti
1 / 21
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!














Dipartimento di Informatica, Universit`a di Pisa http://www.di.unipi.it/∼milazzo milazzo di.unipi.it
a si possono raggruppare informazioni comuni a piupublic class Cubo {
private double lato ; private double pesoSpecifico ;
public Cubo ( double lato , double ps ) { this. lato = lato ; pesoSpecifico = ps ; }
public double volume () { return Math. pow ( lato ,3); }
public double superficie () { return 6* lato * lato ; }
public double peso () { return pesoSpecifico * volume (); } }
public abstract class Solido { // classe astratta
private double pesoSpecifico ;
public Solido ( double ps ){ pesoSpecifico = ps ; }
public double peso (){ return volume () * pesoSpecifico ; }
public abstract double volume (); // metodo astratto
public abstract double superficie (); // metodo astratto }
o richiamare volume() anche see astrattoo essere usata per creare oggetti (la classe none completa...)Solido x = new Solido () // ERRORE
public class Cubo extends Solido {
private double lato ;
// pesoSpecifico e ’ definito nella superclasse
public Cubo ( double lato , double ps ) { super ( ps ); this. lato = lato ; }
public double volume () { return Math. pow ( lato ,3); }
public double superficie () { return 6* lato * lato ; }
// peso () e ’ definito nella superclasse
public String toString (){ return " Cubo [ " + lato + " ] " ; } }
import java. util. Scanner ;
public class UsaSolido { public static void main ( String args []) { Scanner input = new Scanner ( System. in );
System. out. println ( " Vuoi creare una sfera o un cubo ( s / c )? " ); char scelta = input. nextLine (). charAt (0);
if ( scelta == ’s ’ || scelta == ’c ’) { System. out. print ( " Peso Specifico? " ); double ps = input. nextDouble ();
Solido sol ; // variabile di tipo Solido
if ( scelta == ’s ’) { System. out. print ( " Raggio? " ); double raggio = input. nextDouble (); sol = new Sfera ( raggio , ps ); } else { System. out. print ( " Lato? " ); double lato = input. nextDouble (); sol = new Cubo ( lato , ps ); } System. out. println ( " Ho creato un solido " + sol + " con volume " + sol. volume () + " e peso " + sol. peso () ); }
// non e ’ una classe ... e ’ una interfaccia public interface ProdottoPrezzato {
// restituisce una descrizione del prodotto public String getDescrizione ();
// restituisce il prezzo del prodotto public double getPrezzo (); }
e costituita da soli metodi astratti (e completamente non definita)public class DVD extends ProdottoPrezzato { // NO !!!
public class DVD implements ProdottoPrezzato { // OK !!!
public class Farina implements ProdottoPrezzato {
private double prezzoAlKg ; private double peso = 0.
public Farina ( double prezzoAlKg ) { this. prezzoAlKg = prezzoAlKg ; }
public String getDescrizione () { return " Farina " ; }
public void setPeso ( double peso ) { if ( peso >0) this. peso = peso ; }
public double getPrezzo () { return prezzoAlKg * peso ; } }
public interface ProdottoPesabile {
public void setPeso ( double peso );
}
public class Scontrino {
... // altri membri
public void aggiungiProdotto ( ProdottoPrezzato x ) { ... this. totScontrino += x. getPrezzo (); ... }
}
public class Bilancia {
... // altri membri
public void pesa ( ProdottoPesabile x ) { ... double peso = leggipeso (); // metodo ausiliario x. setPeso ( peso ); ... }
}