Anteprima parziale del testo
Scarica Schemi linguaggio Java e più Schemi e mappe concettuali in PDF di Programmazione Java solo su Docsity!
APPUNTI x ESAME me Piper n marest 4 geme 2020 | 1946 vo MA AVOVA ZELAUM Note GENRAL * LATE BINDING: questo poiché italianNote è il programma capisce pubito class Main { i P public static void main(String[] 2-85) { codice funziona Mote[] arr = new iste [5]; un SOTTOTIPO di Note; i quale usare. + OVERRIDE: poiché sia il Note che @Qeride italianNote dispongono di un toString, si dà priorità a quello del sottotipo (che o sovrascrive il sovra tipo) aero]: new hete(5); Sert]. new hote(6); Seri2]5 new hece02); 0713]. new tot); Seri4]z new Moce(e); gor (late niere) { System.out. prinelm(n); * PRINCIPIO DI LISKOV: posso assegnare un sottotipo a una variabile tipo (ad esempio, Note <-- ItalianNote) steC1 i iL Note 5 6 +P SERITURA DI TEST i June class Tests { erest Tradizionalmente il nome deve essere Cosadatestare.Test @test void semitoneIskeptCorrect() { Note n= new Mote(5); Ant - n.getSenitone(); ACTUALRESULT 3 Pet ERO ù * TEST FIRST : ho i test e cerco di scrivere un programma che soddisfi etest Fade s void testrostring() ( EeCIED RESULT Fer note ne new Hiote(S); String s = n.toString(); I T_CLsx Cie verizioA void testEquals() { 5" si se funziona NON REGRESSIONE: scrivo i test evitare che, modificando il T programma con il tempo, il so SR cis: ag TEST AMENO PESgEemme con il Gu TEST ALLO > Bbtggs Runner unt 5) (00839) void testnotEquals() { Note nî= new Hote(5); Note n3anew Note(7); stnotEqualsO (0,016 5) Asserttions.assertFalse(n1.equals(n3)); stEquals0) (0,000 5) i imitonelsKeptCorrect) (0,016 5) devo specificare cos'è X e cos'è Cass GENERICHE (STAN2 10 + class Mainpair { lestToString0 (0,031 s) sono classi dichiarate con tipi generici ( <> ). Per crearle DICHIARO public class { private final X first; private final Y second; public Pair(X first, Y second) { this. finst - first this. second - second; String s-"Hello"; } Note n - new Italiantiote(S); Note n2 = new Italiantote(8); iblic static void main(String[] args) È Jicreiano u String e Song Ilpoishé il t devo fereli n Pair pî = new Pair(s,n); pui Mestsisto ( return finst; Pair cilote, Note» p2 = new Pairciote,Hote>(n2,n); Auro omitizz0 : public) 1!! NON EREDITA I “sor” ; , "SI#"}: CONSTRUTTORI | 1! Può comunque chiamarli e public ItalianNote(int semitone)f NTERFACCIA public class EnglishNoteWithDuration extends EnglishNote implements NotehlithDuration] { è un tipo che non implementa alcun metodo. public interface Notellithouration { Assomiglia. ol Rum > Integer ires2= il*i2; 242 Luaiono Lomo deoNo esere eeiLo Asia Pi tisarli con super() ) super(senitone); /Iguarda l'interfaccia NoteWlithDuration; è sensato che essa abbia il metodo getDurationof. public String toString() { Si È 5 return Nomi[getSemitone()]; } Classi AgctRACT Sono classi dove ho dei metodi non ancora implementati (indicati con Ma ano wii wedodi comuni abstract). Deve esserci abstract anche nel nome. d liu LÌ Non può essre instanziata in quanto incompleta. 0 a mani ITA ® Sono classi dove ho dei metodi non ancora implementati (indicati con abstract). Deve esserci abstract anche nel nome. Non può essre instanziata in quanto incompleta. ESEMPIO: public abstract class Shape ( //ranpresenta una figura geometrica public abstract double getPerimeter() j 117 public abstract double getArea(); IIZIILI publie string toString () { public class Rectangle extends Shape { private final double base; public class Circle [] private final double height; private final double radius; public Rectangle(double base, double height, this.base=base; this.height = height; this. radius=radius; z public double getArea() { return radius*radius*Math.PT; public double getPerimeter() { } return (base+height)"2; ublic double getPerimeter() { return nodius*2"ath. PI; public double getArea() { } return base*heîght; l ’ fasore se ntizione VM Ciascuna classe può re ma può implementare mn erfogio Ne Dego, | i METODI } ann [E] ntarico l is) PRIVATO soperclosie OBIECT IL, Mo gienctà -- N SSA ° fa Note. pre MAS extovò Cone L\QNI vector | | priorityqueve return "Sono una shape di perimetro e area" + getPerimeter() + getArea(); public Circle(double radius) { METON hi OggecT . int comparefo Ritorna un int che indica quale è string tostring() boolean Equals l'oggetto minore: s1.compareTo (52) = 4 = 0 TA Stampa la classe e l'indirizzo esadecimale Di default, verifica se this=zother > Va ridefinito in modo che dia true se: - I due oggetti appartengono alla stessa classe (o sovraclasse) - I due oggetti sono (logicamente) equals public boolean e ‘object other) { return other Note && this.semitone (055) other) . semitone; } C ì melone OL CAST Avviso il compilatore che un Ritorna true se l'oggetto oggetto è di tipo (tipo). è un'istanza di quella senza di esso non compila classe (non capisce che quell'oggetto ha un certo campo) . > CHENTSUEET < o GA'A amensione HAX J|