Esercitazioni Ingegneria del So2ware 2 - Programmazione Java Ereditarietà, Visibilità, Interfacce
|
|
- Carmela Repetto
- 8 anni fa
- Visualizzazioni
Transcript
1 Esercitazioni Ingegneria del So2ware 2 - Programmazione Java Ereditarietà, Visibilità, Interfacce Giordano Tamburrelli tamburrelli@elet.polimi.it hfp://giordano.webfacional.com 1
2 Java: Ereditarietà Richiamo di teoria: Una classe A dichiarata sofoclasse di un'altra classe B: eredita (ha implicitamente) tufe le variabili di istanza/afribui e tur i metodi di B; può avere variabili o metodi aggiunivi; può ridefinire i metodi ereditai da B afraverso l'overriding, in modo tale che essi eseguano la stessa operazione concefuale in un modo specializzato. In Java una classe A si dichiara sofoclasse di B scrivendo: class A extends B 2
3 Java: Ereditarietà Esercizio: Modellizzare in Java le MountainBike. Le MountainBike sono delle normali biciclefe tufavia nel loro stato interno hanno un valore intero che indica il livello dell ammorizzatore. Soluzione 1: Quella che non vorreste mai implementare davani al professore. Soluzione 2: Quella correfa. 3
4 Java: Ereditarietà Esercizio: Modellizzare in Java le MountainBike. public class MountainBike { int cadence=0; int speed=0; int gear=1; int damperlv=1; void changedamperlevel(int newvalue){ damperlv=newvalue; Ho copiato e incollato il 90% del codice della biciclefa. E se la definizione di biciclefa dovesse cambiare? Dovrei cambiare MountainBike void changecadence(int newvalue) { void changegear(int newvalue) { void speedup(int increment) { void applybrakes(int decrement) { void printstates() { 4
5 Java: Ereditarietà Esercizio: Modellizzare in Java le MountainBike. public class MountainBike extends Bicycle{ int damperlv = 1; void changedamperlevel(int newvalue){ damperlv=newvalue; La keywork extends definisce che la MountainBike è una biciclefa. Ha pertanto gli stessi campi interni e gli stessi metodi. In aggiunta a una normale biciclefa ha un livello di ammorizzazione e un metodo che mi permefe di cambiare tale livello. 5
6 Java: Ereditarietà Esercizio: Cosa stampa? class MountainBikeDemo { public static void main(string[] args) { Bicycle bike1 = new Bicycle(); Bicycle bike2 = new MountainBike(); /* * Testiamo */ bike1.changecadence(50); bike1.speedup(10); bike1.changegear(2); bike1.printstates(); bike2.changecadence(40); bike2.speedup(10); bike2.changegear(3); bike2.changedamperlevel(2); bike2.printstates(); Errore: L oggefo bike2 è stato dichiarato come Bicycle. Pertanto non possiede il metodo changedamperlevel. A run2me gli viene assegnata una MountainBike. Soluzione 1: DowncasIng ((MountainBike) bike2).changedamperlevel(); Soluzione 2: Dichiarare come MountainBike se sappiamo che la useremo cosi. 6
7 Java: Ereditarietà Esercizio: Cosa stampa? class MountainBikeDemo { public static void main(string[] args) { Bicycle bike1 = new Bicycle(); MountainBike bike2 = new Bicycle(); /* * Testiamo */ bike1.changecadence(50); bike1.speedup(10); bike1.changegear(2); bike1.printstates(); bike2.changecadence(40); bike2.speedup(10); bike2.changegear(3); bike2.changedamperlevel(2); bike2.printstates(); Errore: L oggefo bike2 è dichiarato come MountainBike. Pertanto deve essere garanito che offrirà tur i servizi di una MountainBike. Se gli assegnate una istanza di biciclefa semplice non potrà offrire il servizio di changedamperlevel(); Soluzione: MountainBike bike2=new MountainBike(); 7
8 Java: Ereditarietà Esercizio: Cosa stampa? class MountainBikeDemo { public static void main(string[] args) { Stampa: Bicycle bike1 = new Bicycle(); MountainBike bike2 = new MountainBike(); /* * Testiamo */ bike1.changecadence(50); bike1.speedup(10); bike1.changegear(2); bike1.printstates(); bike2.changecadence(40); bike2.speedup(10); bike2.changegear(3); bike2.changedamperlevel(2); bike2.printstates(); La stampa della MountainBike è idenica alla stampa della Bicycle. CorreFo, in quanto non abbiamo toccato il metodo printstates(). Ci interesserebbe però che quando richiamiamo printstates() su una MountainBike ci venisse stampata anche l informazione sul livello dell ammorizzatore. 8
9 Java: Overriding Richiamo di teoria: L overriding permefe a una determinata sofoclasse di ridefinire una determinata implementazione di un metodo che è già presente in una delle sue superclassi. L implementazione nella sofoclasse overrides (sosituisce) l implementazione della superclasse. Questo significa che quando andremo a invocare un metodo su un determinato oggefo, il metodo che verrà effervamente eseguito dipende dall oggefo sul quale lo siamo invocando. In Java la sofoclasse deve definire un metodo con lo stesso nome, gli stessi parametri (nome e Ipo), e lo stesso Ipo di ritorno (o sofoipo). 9
10 Java: Overriding Esercizio: Ridefinire il metodo printstates di MountainBike. public class MountainBike extends Bicycle{ int damperlv = 1; void changedamperlevel(int newvalue){ damperlv=newvalue; Poiché printstates() ha la stessa testata di quella che troviamo nella classe padre questa definizione sosituisce quella di Bicycle. void printstates() { System.out.println("cadence:"+cadence + speed:"+speed +" gear:"+gear +"damperlevel: +damperlv); 10
11 Java: Overriding Esercizio: Ridefinire il metodo printstates di MountainBike (migliorato) public class MountainBike extends Bicycle{ int damperlv = 1; void changedamperlevel(int newvalue){ damperlv=newvalue; Se un determinato metodo fa overriding allora è possibile richiamare il metodo che state ridefinendo mediante la keyword super. void printstates(){ super.printstates(); System.out.println("and damperlevel: +damperlv); Il vantaggio è di poter quindi estendere il metodo che state ridefinendo. 11
12 Java: super vs this Esercizio: Date le segueni definizioni di classe class Persona{ String nome; String cognome; Persona(){ nome="sconosciuto"; cognome="sconosciuto"; Persona(String nome, String cognome){ this.nome=nome; this.cognome=cognome; class Studente extends Persona{ int matricola; Studente(int matricola){ //super() this.matricola=matricola; Studente(String nome, String cognome, int matricola){ super(nome, cognome); this(matricola); void mipresento(){ System.out.println( "Mi chiamo " + nome + " " + cognome); void mipresentostudente(){ super.mipresento(); this.mipresento(); void mipresento(){ System.out.println( "Sono uno studente con matricola " + matricola + ". "); 12
13 Java: super vs this Esercizio: cosa stampa? public class SuperAndThis { public static void main(string[] args){ Persona p=new Persona("Alfredo", "Motta"); p.mipresento(); Studente s=new Studente("Alfredo", "Motta", 123); s.mipresento(); Studente t=new Studente(123); t.mipresento(); Stampa: Mi chiamo Alfredo MoFa Mi chiamo Alfredo MoFa Sono uno studente con matricola 123. Mi chiamo Sconosciuto Sconosciuto Sono uno studente con matricola
14 Java: Overriding vs Overloading class Super{... class B extends A{ class Sub extends Super{... class A{ public Super f1(int a){... protected void f2(super a){... public Object f1(int a){... //errore: Object è ancestor di Super //Il tipo di ritorno deve essere un sottotipo di quello usato dal padre. Perché? public Super f1(long a){... //overloading: Cambia il tipo dei parametri public Super f1(int a, int b){... //overloading: Cambia il numero dei parametri public Sub f1(int a){... //overriding: Valido perchè Sub è figlia di Super private Sub f1(int a){... //errore: Non posso diminuire la visibilità quando faccio overriding //posso solo aumentarla protected void f2(sub a){... //overloading: anche se Sub è figlio di Super non stiamo ridefinendo f2 public void f2(super a){... //overriding: la visibilità passa da protected a public. Nessun problema. 14
15 Java: Overriding Esercizio: Creare una classe PrivateOverride con un metodo privato f(). Successivamente dichiarare la classe Derived sofoclasse di PrivateOverride avente metodo pubblico f(). Discutere il problema dell overriding del metodo privato f() di PrivateOverride da parte del metodo pubblico f() di Derived. 15
16 Java: Overriding public class PrivateOverride { private void f() { print("private f()"); public static void main(string[] args) { PrivateOverride po = new Derived(); po.f(); class Derived extends PrivateOverride { I metodi privai sono automaicamente di Ipo final pertanto non sarà possibile in nessun modo fare overriding di tali metodi. In questo esempio il programma stampa public void f() { print("public f()"); private f() Dichiarando la variabile po come Derived avremmo invece in output private f() 16
17 Java: Overriding Esercizio: Cosa stampa il seguente programma class Super { public int field = 0; public int getfield() { return field; Stampa sup.field = 0, sup.getfield() = 1 sub.field = 1, sub.getfield() = 1, sub.getsuperfield() = 0 class Sub extends Super { public int field = 1; public int getfield() { return field; public int getsuperfield() { return super.field; class FieldAccess { public static void main(string[] args) { Super sup = new Sub(); // Upcast System.out.println("sup.field = " + sup.field + ", sup.getfield() = " + sup.getfield()); Sub sub = new Sub(); System.out.println("sub.field = " + sub.field + ", sub.getfield() = " + sub.getfield() + ", sub.getsuperfield() = " + sub.getsuperfield()) ; 17
18 Java: Polimorfismo Richiamo di teoria: il polimorfismo è una proprietà del codice in grado di comportarsi diversamente in diversi contesi di esecuzione. Nella programmazione orientata agli ogger il polimorfismo è legato alle relazioni di eredità tra classi. L overriding appena visto rende possibile che gli ogger apparteneni a delle sofoclassi di una stessa classe rispondano diversamente alle stesse istruzioni. Il duck typing (che non esiste in Java ma esiste in linguaggi come Ruby e Python è un esempio estremo di polimorfismo. 18
19 Java: Polimorfismo Esercizio: Le Figure si dividono in Cerchi, QuadraI e Triangoli. Ogni figura mefe a disposizione i metodi draw() e erase() per rispervamente stampare e cancellare la figura. IpoIzzando che draw() e erase() stampino semplicemente delle stringhe che riportano l operazione che si sta eseguendo, modellizzare la gerarchia di classi che discende da Figura. 19
20 Java: Polimorfismo public class Shape { public void draw() { public void eraseo { Molto semplice, ci serve per svolgere i prossimi 2 esercizi. public class Circle extends Shape { public void draw() { System.out.println("Circle.draw()"); public void erase() {System.out.println("Circle.erase() ") ; public class Square extends Shape { public void draw() {System.out.println("Square.draw()"); public void erase() {System.out.println("Square.erase() ") ; public class Triangle extends Shape { public void draw() {System.out.println("Triangle.draw()"); public void erase() {System.out.println("Triangle.erase() ") ; 20
21 Java: Polimorfismo Esercizio: Creare una classe RandomShapeGenerator che mediante un metodo next() ritorni in modo random un istanza di Circle, Square o Triangolo. public class RandomShapeGenerator { private Random rand = new Random(47); public Shape next() { switch(rand.nextlnt (3)) { default: case 0: return new Circle(); case 1: return new Square(); case 2: return new Triangle(); UIlizziamo la classe Random offerta da Java, inizializzata con un opportuno seed. Andare a guardare la Java documentaion per ulteriori defagli. 21
22 Java: Polimorfismo Esercizio: UIlizzando la classe RandomShapeGenerator creare un metodo main che mi permefa di disegnare delle figure generate casualmente. public class Shapes { private static RandomShapeGenerator gen = new RandomShapeGenerator(); public static void main(string[] args) { Shape[] s = new Shape[9]; // Fill up the array with shapes: for(int i = 0 ; i < s.length; i++) s[i] = gen.next() ; // Make polymorphic method calls: for(shape shp : s) shp.draw(); 22
23 Java: Polimorfismo Esercizio: UIlizzando la classe RandomShapeGenerator creare un metodo main che mi permefa di disegnare delle figure generate casualmente. public class Shapes { private static RandomShapeGenerator gen = new RandomShapeGenerator(); public static void main(string[] args) { Shape[] s = new Shape[9]; // Fill up the array with shapes: for(int i = 0 ; i < s.length; i++) s[i] = gen.next() ; // Make polymorphic method calls: for(shape shp : s) shp.draw(); StaIcamente a livello di codice io ho deciso di disegnare delle figure, tufavia a run- Ime il metodo draw() cambia a seconda del Ipo dinamico che siamo considerando. L output di questo programma è impredicibile 23
24 Java: Polimorfismo Esercizio: Cosa stampa? class A{ void f1(){ System.out.println("f1InA()"); void f1(int a){ System.out.println("f1InA(int a)"); void f2(){ System.out.println("f2inA()"); class B extends A{ void f1(int b){ System.out.println("f1InB(int b)"); class D extends B{ void f1(){ System.out.println("f1InD()"); class C extends A{ void f1(char c){ System.out.println("f1InC(char c)"); public class Polimorphism { public static void main(string[] args){ A St_A Dy_D=new D(); B St_B Dy_C=new C(); B St_B Dy_D=new D(); St_A Dy_D.f1(); St_A Dy_D.f1(2); St_B Dy_C.f1('c'); St_B Dy_D.f2(); Stampa: f1ind() Stampa: f1inb(int b) Stampa: f2ina() B D A C 24
25 Java: Polimorfismo Esercizio: Cosa stampa? public class Polimorphism5 { public static void main(string[] args){ Scarpa s=new Scarpa(); s.stampa(); Scarpa g=new ScarpaDaGinnastica(); g.stampa(); class Scarpa{ static void stampa(){ System.out.println("Scarpa"); Stampa: Scarpa Scarpa Non è possibile fare overriding di un metodo staico. In altre parole Il binding dinamico dei metodi esiste solo per quelli non- staici. Se avessimo dichiarato g come ScarpaDaGinnasIca in quel caso il metodo stampa() avrebbe dato come output Scarpa da ginnasica class ScarpaDaGinnastica extends Scarpa{ static void stampa(){ System.out.println("Scarpa da ginnastica"); 25
26 Java: Visibilità Richiamo di teoria: Le keyword di visibilità si possono applicare alle classi, agli afribui e ai metodi. Una classe può essere: public: la classe è visibile a tur package- private: la classe è visibile solo all interno del suo package. E il valore di default quando non si specifica nessuna visibilità. AFribuI e metodi possono essere: public, private, protected, package- private Anche qui se viene omesso si intende package- private 26
27 Java: Visibilità La prima colonna ci dice che la classe può sempre accedere ai suoi membri indipendentemente dal livello di accesso. La seconda colonna ci dice i permessi relaivi alle classi dichiarate nello stesso package (indipendentemente dalla parantela) La terza colonna ci dice i permessi relaivi alle sofoclassi dichiarate in altri package. L ulima colonna ci dice i permessi del mondo esterno. 27
28 Java: Visibilità Esercizio: Visibile? package Prova; public class A { private int private_int = 1; int package_int = 2; protected int protected_int = 3; public int public_int = 4; private void privatemethod() {... void packagemethod(){... protected void protectedmethod(){... public void publicmethod(){... public static void main(string[] args) { A a = new A (); // Crea un oggetto di classe A a.privatemethod(); a.packagemethod(); a.protectedmethod(); a.publicmethod(); System.out.println("private_int: " + a.private_int); System.out.println("package_int: " + a.package_int); System.out.println("protected_int: " + a.protected_int); System.out.println("public_int: " + a.public_int); Nessun errore: Dall interno della classe posso sempre accedere a qualsiasi afributo/metodo, indipendentemente dalla sua visibilità 28
29 Java: Visibilità Esercizio: Visibile? package Prova; public class B { public static void main(string[] args) { A a = new A(); a.privatemethod(); a.packagemethod(); a.protectedmethod(); a.publicmethod(); Il metodo privato non è visibile da una classe esterna. System.out.println("private_int: " + a.private_int); System.out.println("package_int: " + a.package_int); System.out.println("protected_int: " + a.protected_int); System.out.println("public_int: " + a.public_int); L afributo privato non è visibile a una classe esterna. 29
30 Java: Visibilità package ProvaB; import Prova.*; public class C extends A { public static void main(string[] args) { A a = new A(); a.privatemethod(); a.packagemethod(); System.out.println("private_int: " + a.private_int); System.out.println("package_int: " + a.package_int); Sono fuori dalla classe e dal package a.publicmethod(); System.out.println("public_int " + a.public_int); a.protectedmethod(); System.out.println("protected_int: "+ a.protected_int); C c = new C(); c.protectedmethod(); System.out.println("protected_int: " + c. protected_int); E consenito ad una istanza di una classe figlia far riferimento ai metodi e alle proprietà implementate nella classe padre ma non è permesso accedere ad essi afraverso una istanza della classe padre. 30
31 Java: Visibilità Esercizio: Date le segueni classi public class O1 { private O2 o2=new O2(); public O2 geto2(){ return o2; public class O2 { public String nome; public void stampa(){ System.out.println(o2.nome); Posso modificare dall esterno lo stato di O1? 31
32 Java: Visibilità Soluzione: Certo che posso. Basta accedere ad o2 che è l unico afributo di O1 e modificarlo. public static void main(string[] args){ O1 o1=new O1(); O2 o2=o1.geto2(); o2.nome="ciao"; o1.stampa(); L inconveniente nasce dal fafo che O2 dichiara il suo afributo come pubblico. Una volta ofenuto un riferimento all afributo di O1 posso modificarlo e O1 vedrà queste modifiche. 32
33 Java: Interface Esercizio: Modellizzare in Java un applicazione in cui le Persone si suddividono in StudenI e Lavoratori Possono esistere Persone semplici, StudenI, Lavoratori, ma anche degli StudenILavoratori. 33
34 Java: Interface Prima (pessima) idea public class Persona{ String nome; String getnome(){ return nome; public class Studente extends Persona{ public class StudenteLavoratore extends Lavoratore{ int matricola; int getmatricola(){ return matricola; int matricola; int getmatricola(){ return matricola; In Java non esiste l ereditarietà mulipla, ovvero non è possibile avere più di una classe padre. Questo mi crea una serie di limitazioni (superabili). public class Lavoratore extends Persona{ float salario; float getsalario(){ return salario; Questa soluzione eredita il comportamento di Lavoratore ma mi costringe a ricopiare il codice di Studente. Decisamente poco pulito. 34
35 Java: Interface La soluzione è nell uilizzo delle interfacce. Java ammefe la possibilità di implementare interfacce muliple. Definiamo quindi public interface Persona { String getnome(); public interface Studente extends Persona { int getmatricola(); public interface Lavoratore extends Persona{ float getsalario(); public class PersonaImpl implements Persona{ private String nome; public PersonaImpl(String nome) { this.nome = nome; public String getnome() { return nome; Le interfacce rappresentano un contrafo tra classi. Chi implementa una determinata interfaccia dovrà fornire una implementazione del metodo dichiarato nell interfaccia stessa. In questo caso PersonaImpl mefe a disposizione il metodo getnome() che deve essere garanito in accordo con l interfaccia Persona. 35
36 Java: Interface public class StudenteLavoratore extends PersonaImpl implements Studente, Lavoratore { private int matricola; private float salario; public StudenteLavoratore(String nome, int matricola, float salario) { super(nome); this.matricola = matricola; this.salario = salario; public int getmatricola() { return matricola; public float getsalario() { return salario; Lo StudenteLavoratore è una Persona, quindi può invocare il suo costrufore passando il suo nome. Lo StudenteLavoratore fornisce i servizi garanii dalle interfacce che implementa: Studente, Lavoratore Anche in questo caso sarò costrefo a ricopiare buona parte dell implementazione di Studente dentro StudenteLavoratore. TuFavia qui è esplicitato sintarcamente in Java il fafo che Studente fornisce tur i servizi fornii da Studente e da Lavoratore. Molto più ordinato. 36
Programmazione a Oggetti Lezione 10. Ereditarieta
Programmazione a Oggetti Lezione 10 Ereditarieta Sommario Come definire sottoclassi Costruttori Abstract Classes Final Ereditarietà: promemoria Strumento tipico dell OOP per riusare il codice e creare
DettagliEsercizi della lezione 5 di Java
Esercizi della lezione 5 di Java Esercizio 5 Create il tipo di dato Counter dell Esercizio 1 come sottoclasse del tipo di dato SimpleCounter. Esercizio 1 Create un tipo di dato Counter che abbia: un valore
DettagliFondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011
Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Paradigma OO Incapsulamento Polimorfismo e Overloading Ereditarietà e Overriding Esercizi svolti Esercizi proposti Paradigma OO Le
DettagliTipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:
Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante
DettagliModulo 4: Ereditarietà, interfacce e clonazione
Modulo 4: Ereditarietà, interfacce e clonazione Argomenti Trattati: Classi, Superclassi e Sottoclassi Ereditarietà Ereditarietà ed Attributi Privati Override super Ereditarietà e Costruttori Polimorfismo
DettagliJava: Compilatore e Interprete
Java: Compilatore e Interprete Java Virtual Machine Il bytecode non è Linguaggio Macchina. Per diventarlo, deve subire un ulteriore trasformazione che viene operata dall interprete Java in modalità JIT
DettagliIntroduzione. Java. Composizione. Esempio -- composizione. G. Prencipe prencipe@di.unipi.it. È qualcosa che abbiamo già visto varie volte
Java riutilizzo delle classi G. Prencipe prencipe@di.unipi.it Introduzione Una delle caratteristiche fondamentali in Java è il riutilizzo del codice Ci sono due modi per ottenerlo Creare oggetti di classi
DettagliGESTIONE DEI PROCESSI
Sistemi Operativi GESTIONE DEI PROCESSI Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in Java Concetto
DettagliEsercizi sulla definizione di classi (Fondamenti di Informatica 1 Walter Didimo) Soluzioni
Esercizi sulla definizione di classi (Fondamenti di Informatica 1 Walter Didimo) Soluzioni Esercizio 1 Nella classe definita di seguito indicare quali sono le variabili di istanza, quali sono le variabili
DettagliTelematica II 17. Esercitazione/Laboratorio 6
Multitasking e Multithreading Telematica II 17. Esercitazione/Laboratorio 6 Multitasking si riferisce all abilità di un computer di eseguire processi (jobs) multipli in maniera concorrente si ricorda che
DettagliRealizzazione di una classe con un associazione
Realizzazione di una classe con un associazione Nel realizzare una classe che è coinvolta in un associazione, ci dobbiamo chiedere se la classe ha responsabilità sull associazione. Diciamo che una classe
DettagliParola chiave extends
Il Linguaggio Java Ereditarietà Ereditarietà L'ereditarietà permette di creare nuove classi sulla base di classi esistenti In particolare, permette di riusare il codice (metodi e campi); aggiungere nuovi
DettagliCorso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2005-06 Secondo Compitino 17 Dicembre 2005
Studente (Cognome Nome): Matricola: Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2005-06 Secondo Compitino 17 Dicembre 2005 Si noti che le soluzioni ai quesiti saranno considerate
DettagliConcetto di Funzione e Procedura METODI in Java
Fondamenti di Informatica Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile
DettagliJava:Struttura di Programma. Fabio Scanu a.s. 2014/2015
Java:Struttura di Programma Fabio Scanu a.s. 2014/2015 Altre Attenzioni da riservare Java è Case Sensitive: La variabile «a» e la variabile «A» sono diverse Java ha alcune regole di scrittura: I nomi delle
DettagliLa prima applicazione Java. Creazione di oggetti - 1. La prima applicazione Java: schema di esecuzione. Gianpaolo Cugola - Sistemi Informativi in Rete
La prima applicazione Java Programma MyFirstApplication Il programma visualizza una finestra vuota sullo schermo. Importo il package delle classi usate nel seguito. Dichiaro la classe MyFirstApplication
DettagliProgrammazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013
Programmazione a Oggetti e JAVA Prof. B.Buttarazzi A.A. 2012/2013 Relazioni tra classi Ereditarietà Generalizzazione Specializzazione Aggregazione Composizione Dipendenza Associazione Sommario Relazioni
Dettagli!"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&) !"#$%&&'(%)'*+%",#-%"#.'%&'#/0)-+#12"+3,)4+56#7+#.')8'9
!"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&)!"#$%&&'(%)'*+%",#-%"#.'%&'#/0)-+#12"+3,)4+56#7+#.')8'9 Slide 1 Paradigmi di Programmazione! Un linguaggio supporta uno stile di programmazione se
DettagliReflection in Java. Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010
Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it Reflection in Java 1 Reflection Riflessione
DettagliFondamenti di Informatica C Esercitazioni di Laboratorio / 3 http://polaris.ing.unimo.it/fic/laboratorio.html. Outline
Fondamenti di Informatica C Esercitazioni di Laboratorio / 3 http://polaris.ing.unimo.it/fic/laboratorio.html Ing. Francesco De Mola demola.francesco@unimore.it DII, Modena Via Vignolese (lab. Dottorandi
DettagliUML Diagrammi delle classi. UML Diagramma classi 1
UML Diagrammi delle classi UML Diagramma classi 1 Diagramma delle classi Non è nei nostri obiettivi affrontare UML nel suo complesso Ci concentreremo sui diagrammi delle classi che ci forniscono un linguaggio
Dettagli12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)
12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,
DettagliInformatica. Prof. A. Longheu. Introduzione ai Linguaggi Object-Oriented
Informatica Prof. A. Longheu Introduzione ai Linguaggi Object-Oriented 1 Generalità programmazione OO La programmazione ad oggetti è un particolare modo di scrivere il programma. Si prevede che: 1) si
DettagliProgrammazione A.A. 2002-03. Programmazione Orientata agli Oggetti: Lavorare con gli oggetti ( Lezione XXVII)
Programmazione A.A. 2002-03 I Programmazione Orientata agli Oggetti: Lavorare con gli oggetti ( Lezione XXVII) Prof. Giovanni Gallo Dr. Gianluca Cincotti Dipartimento di Matematica e Informatica Università
DettagliOggetti Lezione 3. aspetti generali e definizione di classi I
Programmazione a Oggetti Lezione 3 Il linguaggio Java: aspetti generali e definizione di classi I Sommario Storia e Motivazioni Definizione di Classi Campi e Metodi Istanziazione di oggetti Introduzione
DettagliEsercitazione n 4. Obiettivi
Esercitazione n 4 Obiettivi Progettare e implementare per intero un componente software in Java Linguaggio Java: Classi astratte Utilizzo di costruttori e metodi di superclasse Polimorfismo Esempio guida:
DettagliOttava Esercitazione. introduzione ai thread java mutua esclusione
Ottava Esercitazione introduzione ai thread java mutua esclusione Agenda Esempio 1 Concorrenza in Java: creazione ed attivazione di thread concorrenti. Esercizio 2 da svolgere Concorrenza in Java: sincronizzazione
DettagliProgrammazione a Oggetti Modulo B
Programmazione a Oggetti Modulo B Progetto Dott. Alessandro Roncato 4/10/2011 Progetto Da svolgere singolarmente Scadenza consegna: una settimana prima dello scritto; Valutazione in base a: Corretta compilazione
DettagliProgrammazione Java: Variabili membro, Metodi La parola chiave final
Programmazione Java: Variabili membro, Metodi La parola chiave final romina.eramo@univaq.it http://www.di.univaq.it/romina.eramo/tlp Roadmap Definire una classe» Variabili membro» Metodi La parola chiave
DettagliEredità in C++ Corso di Linguaggi di Programmazione ad Oggetti 1. a cura di Giancarlo Cherchi
Eredità in C++ Corso di Linguaggi di Programmazione ad Oggetti 1 a cura di Giancarlo Cherchi 1 Introduzione Il meccanismo dell eredità consente di sfruttare delle relazioni tipo/sottotipo, ereditando attributi
DettagliInformatica 3. LEZIONE 7: Fondamenti di programmazione orientata agli oggetti (1)
Informatica 3 LEZIONE 7: Fondamenti di programmazione orientata agli oggetti (1) Modulo 1: Introduzione: oggetti e classi Modulo 2: Link e associazioni Modulo 3: Aggregazione Informatica 3 Lezione 7 -
DettagliAlgebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica
Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL 1 Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono
DettagliInizializzazione, Assegnamento e Distruzione di Classi
Inizializzazione, Assegnamento e Distruzione di Classi Lezione 9 Operazioni Automatiche In ogni programma C++ oggetti classe vengono gestiti automaticamente dal compilatore Inizializzati al momento della
DettagliRelazioni tra oggetti e classi : Composizione. Relazioni tra oggetti e classi : esempio di Aggregazione. classe contenitore
Relazioni tra oggetti e classi : Generalizzazione Fondamenti di Informatica II 20. Laboratorio 6 Collegamenti e associazioni Le relazioni di tipo generalizzazione (specializzazione), servono per poter
DettagliEsercizi su. Funzioni
Esercizi su Funzioni ๒ Varie Tracce extra Sul sito del corso ๓ Esercizi funz_max.cc funz_fattoriale.cc ๔ Documentazione Il codice va documentato (commentato) Leggibilità Riduzione degli errori Manutenibilità
DettagliIngegneria del Software
Ingegneria del Software Java Relazioni Associazioni 1 Associazione Uno a Zero-Uno Un esempio Un autovettura ha al più un proprietario 0..1 Dato il verso di navigazione specificato è necessario avere una
DettagliLa gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni
La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni Autore: Prof. Agostino Sorbara ITIS "M. M. Milano" Autore: Prof. Agostino Sorbara ITIS "M. M.
DettagliStudente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2006-07 Secondo Compitino 21 Dicembre 2006
Studente (Cognome Nome): Matricola: Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2006-07 Secondo Compitino 21 Dicembre 2006 Si noti che le soluzioni ai quesiti saranno considerate
DettagliCorso di Informatica
Corso di Informatica Modulo T1 B2 Significato e proprietà della OOP 1 Prerequisiti Concetto ed elementi della comunicazione Allocazione e deallocazione della memoria Compilazione di un programma Spazio
DettagliUno dei pregi di Java è quello di integrare la documentazione con il codice stesso Formato dei commenti:
Javadoc Uno dei pregi di Java è quello di integrare la documentazione con il codice stesso Formato dei commenti: /* commenti */ // commenti /** commenti documentazione */ Questi ultimi generano automaticamente
DettagliMain System Monitor Keyboard
Composite 57 8. Composite (Gof pag. 163) 8.1. Descrizione Consente la costruzione di gerarchie di oggetti composti. Gli oggetti composti possono essere conformati da oggetti singoli, oppure da altri oggetti
DettagliCorso di Programmazione ad Oggetti
Corso di Programmazione ad Oggetti Il meccanismo dell ereditarietà a.a. 2008/2009 Claudio De Stefano 1 L ereditarietà consente di definire nuove classi per specializzazione o estensione di classi preesistenti,
DettagliCompute engine generici in RMI
Compute engine generici in RMI Esempio: Calcolo del prodotto scalare Un unico server offre il servizio di calcolo del prodotto scalare tra vettori di interi Un client richiede al server il calcolo del
DettagliCorso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2010-11 13 settembre 2011
Cognome Nome Matricola Postazione PC Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2010-11 13 settembre 2011 Testo Il database di un videonoleggio è costituito da due vettori paralleli.
Dettagli13. Chain of Responsibility
Chain of Responsibility 92 13. Chain of Responsibility (GoF pag. 223) 13.1. Descrizione Consente di separare il mittente di una richiesta dal destinario, in modo di consentire a più di un oggetto di gestire
DettagliFunzioni in C. Violetta Lonati
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni
DettagliObject Oriented Programming
OOP Object Oriented Programming Programmazione orientata agli oggetti La programmazione orientata agli oggetti (Object Oriented Programming) è un paradigma di programmazione Permette di raggruppare in
DettagliAlgoritmi di Ricerca. Esempi di programmi Java
Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare
DettagliProgettazione : Design Pattern Creazionali
Progettazione : Design Pattern Creazionali Alessandro Martinelli alessandro.martinelli@unipv.it 30 Novembre 2010 Progettazione : Design Pattern Creazionali Aspetti generali dei Design Pattern Creazionali
DettagliIntroduzione alla programmazione Java. Dott. Ing. M. Banci, PhD
Introduzione alla programmazione Java Dott. Ing. M. Banci, PhD Obiettivi del corso Creare, compilare, e eseguire programmi Java Tipi di dato primitivi Flusso di controllo Java Metodi Arrays Introduzione
DettagliEsercitazione di Basi di Dati
Esercitazione di Basi di Dati Corso di Fondamenti di Informatica 6 Maggio 2004 Come costruire una ontologia Marco Pennacchiotti pennacchiotti@info.uniroma2.it Tel. 0672597334 Ing.dell Informazione, stanza
DettagliI casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.
UML e i Casi d USO I casi d uso specificano una sequenza di azioni che producono un risultato visibile agli attori del sistema. Essi nascono per fornire descrizioni delle capacità del sistema. I casi d
DettagliINTRODUZIONE INTRODUZIONE JAVA JAVA
INTRODUZIONE INTRODUZIONE Lo sviluppo di applicazioni complesse porta a costruire moduli software sempre più potenti e versatili, che possano essere riutilizzati in numerosi progetti I linguaggi ad oggetti
DettagliNascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti
Nascita di Java L uscita di Java, verso la metà degli anni novanta, fu accolta con molto entusiasmo dalla comunità dei programmatori e dei provider di servizi internet perché permetteva agli utenti del
Dettagli3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
3 - Variabili Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di
Dettaglidall argomento argomento della malloc()
Allocazione dinamica Quando? Tutte le volte in cui i dati possono crescere in modo non prevedibile staticamente a tempo di sviluppo Un array con dimensione i fissata a compile-time non è sufficiente È
DettagliCorso di Laurea Ingegneria Informatica Fondamenti di Informatica 2
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Dispensa E08 Soluzione Esercizi F. Gasparetti, C. Limongelli Marzo 2008 http://www.dia.uniroma3.it/~java/fondinf1/ Soluzione Esercizi
DettagliEsempio: il conto bancario
Ereditarietà Prof. Francesco Scarcello D.E.I.S., Università della Calabria Corso di Informatica 2 Esempio: il conto bancario public class BankAccount { public BankAccount() { balance = 0; public BankAccount(double
DettagliJava Virtual Machine
Java Virtual Machine programmi sorgente: files.java compilatore files.class bytecode linker/loader bytecode bytecode Java API files.class interprete macchina ospite Indipendenza di java dalla macchina
DettagliInformatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica
Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Dipartimento di Elettronica, Informazione e Bioingegneria Informatica B Sezione D Franchi Alessio Mauro,
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Grafica: Thread versione 1.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
DettagliSviluppo Applicazioni Mobile Lezione 11. Dr. Paolo Casoto, Ph.D - 2012
+ Sviluppo Applicazioni Mobile Lezione 11 + Credits I lucidi di questa lezione sono stati preparati da: Professor Stefano Mizzaro Professor Paolo Coppola e sono stati modificati e completati dal Dr. Paolo
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Design Pattern: Storia Parte b versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
Dettagli20. Appunti sulle liste (gestione in linguaggio C#) 16/04/2015 Arraylist
20. Appunti sulle liste (gestione in linguaggio C#) 16/04/2015 Arraylist Esamina il codice seguente, eseguilo passo passo (F11) e rispondi ai quesiti: using System; using System.Collections; class Program
DettagliProssime lezioni. Dai TDA agli oggetti. Riassunto. Riassunto TDA. Oggi. Stefano Mizzaro 1
Prossime lezioni Dai TDA agli oggetti Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro mizzaro@dimi.uniud.it Programmazione, lezione 18 19 gennaio
Dettagli1. I FONDAMENTI DELLA PROGRAMMAZIONE AD OGGETTI
IL LINGUAGGIO JAVA Dispense per il corso di laboratorio di sistemi I.T.I.S. ABACUS A.S. 2008/2009 Autore: Roberto Amadini Testo di riferimento: La programmazione ad oggetti C++ Java (Lorenzi, Moriggia,
DettagliMultithreading in Java. Fondamenti di Sistemi Informativi 2014-2015
Multithreading in Java Fondamenti di Sistemi Informativi 2014-2015 Multithreading La programmazione concorrente consente di eseguire più processi o thread nello stesso momento. Nel secondo caso si parla
DettagliConcetti Base Encapsulation ed Ereditarietà Programmare con l Ereditarietà. Java: Ereditarietà. Damiano Macedonio
Dipartimento di Informatica, Università degli Studi di Verona Corso di Programmazione per Bioformatica Introduzione Ereditarietà in Sintesi È uno dei concetti chiave della programmazione orientata agli
DettagliUso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012
Fondamenti di informatica Oggetti e Java ottobre 2012 1 JUnit JUnit è uno strumento per assistere il programmatore Java nel testing JUnit consente di scrivere test di oggetti e classi Java i test sono
DettagliCorso di Laurea Ingegneria Informatica Fondamenti di Informatica
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E01 Esempi di programmi A. Miola Ottobre 2011 1 Contenuti Vediamo in questa lezione alcuni primi semplici esempi di applicazioni
DettagliFunzioni. Il modello console. Interfaccia in modalità console
Funzioni Interfaccia con il sistema operativo Argomenti sulla linea di comando Parametri argc e argv Valore di ritorno del programma La funzione exit Esercizio Calcolatrice 2, presente in tutti i programmi
DettagliProgrammazione a oggetti e JAVA. Prof. B.Buttarazzi A.A. 2011/2012
Programmazione a oggetti e JAVA Prof. B.Buttarazzi A.A. 2011/2012 Sommario Variabili statiche Ereditarietà multipla Le interfacce Binding Esercizi Esercizio ContoCorrente Creare una classe ContoCorrente
DettagliStruttura di un programma Java
Struttura di un programma Java Un programma in Java è un insieme di dichiarazioni di classi. Una classe non può contenere direttamente delle istruzioni, ma può contenere la dichiarazione di metodi, che
DettagliProf. Pagani Corrado ESERCITAZIONI DIAGRAMMI DELLE CLASSI UML E JAVA
Prof. Pagani Corrado ESERCITAZIONI DIAGRAMMI DELLE CLASSI UML E JAVA ES 02 - ORGANIZER Voglio un gestionale (organizer) che permetta a ciascun dipendente della mia azienda di inserire le attività che svolgono
DettagliIntroduzione a Classi e Oggetti
Introduzione a Classi e Oggetti Oggetto: concetto astratto Entità di un programma dotata di tre proprietà caratteristiche stato informazioni conservate nell oggetto condizionano il comportamento dell oggetto
DettagliProgrammazione in Java (I modulo) Lezione 3: Prime nozioni
Programmazione in Java (I modulo) Lezione 3: Prime nozioni La volta scorsa Abbiamo avuto un primo assaggio! Abbiamo visto come usare l editor per scrivere un programma Java. Abbiamo analizzato riga per
DettagliProgrammazione II. Lezione 4. Daniele Sgandurra 30/09/2011. daniele.sgandurra@iit.cnr.it
Programmazione II Lezione 4 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 30/09/2011 1/46 Programmazione II Lezione 4 30/09/2011 Sommario 1 Esercitazione 2 Panoramica della Programmazione Ad Oggetti 3
DettagliSoluzioni degli esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo)
Soluzioni degli esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo) Soluzioni delle prove al calcolatore Esercizio 7 (esame del 08/01/2009) class TabellaDiNumeri{ private double[][] tabella;
DettagliTale attività non è descritta in questa dispensa
Fondamenti di informatica Oggetti e Java ottobre 2014 1 Nota preliminare L installazione e l uso di Eclipse richiede di aver preliminarmente installato Java SE SDK Tale attività non è descritta in questa
DettagliUn esercizio d esame. Flavio De Paoli
Un esercizio d esame e note sulla gestione dei dati Flavio De Paoli Il testo (Appello 22 ottobre 2001) Una stazione di servizio dispone di n distributori di benzina. I clienti si presentano a uno dei distributori
DettagliCorso di Laurea Ingegneria Informatica Fondamenti di Informatica 2
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Dispensa 10 Strutture collegate - 2 A. Miola Febbraio 2008 http://www.dia.uniroma3.it/~java/fondinf2/ Strutture collegate - 2 1 Contenuti!Strutture
DettagliSAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica
SAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica Esercitazioni di PROGETTAZIONE DEL SOFTWARE (Corsi di Laurea in Ingegneria Informatica ed Automatica ed Ingegneria
DettagliUniversità di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.
Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record
Dettagli15 - Packages. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
15 - Packages Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di
Dettagli3. La sintassi di Java
pag.9 3. La sintassi di Java 3.1 I tipi di dati statici In Java, come in Pascal, esistono tipi di dati statici predefiniti e sono i seguenti: byte 8 bit da -128 a 127 short 16 bit coincide con l integer
DettagliObject Oriented Software Design
Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Object Oriented Software Design Corso di Tecniche di Programmazione Laurea in Ingegneria Informatica (Canale di Ingegneria
DettagliSAPIENZA Università di Roma, Facoltà di Ingegneria
SAPIENZA Università di Roma, Facoltà di Ingegneria Corso di PROGETTAZIONE DEL SOFTWARE Laurea in Ingegneria Informatica Prof. E.Casalicchio A.A. 2008/09 QUARTA PARTE: Soluzioni Esercizi 13-23 Soluzione
DettagliProgrammi e Oggetti Software
Corso di Laurea Ingegneria Civile Elementi di Informatica Programmi e Oggetti Software Settembre 2006 Programmi e Oggetti Software 1 Contenuti Cosa è un programma Cosa significa programmare Il punto di
DettagliTesto Esercizio. Un modello è ragionevole quando contiene queste tre caratteristiche.
Testo Esercizio Si consideri la realizzazione di un semplice programma grafico per il disegno di figure geometriche in due dimensioni. Si analizzino i requisiti e se ne rappresentino i risultati in UML
DettagliDESIGN PATTERNS Parte 6. State Proxy
DESIGN PATTERNS Parte 6 State Proxy STATE Il Design Pattern State nasce dall'esigenza di poter gestire gli stati di una classe senza dover usare dei costrutti come gli Enum e quindi delle switch. Prendiamo
DettagliIntroduzione alla programmazione in C
Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale
DettagliSISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09
SISTEMI OPERATIVI Prof. Enrico Terrone A. S: 2008/09 Che cos è il sistema operativo Il sistema operativo (SO) è il software che gestisce e rende accessibili (sia ai programmatori e ai programmi, sia agli
DettagliEsempi di esercizi d esame
Esempi di esercizi d esame Fondamenti di Informatica L-B 1 Cellulare Testo esercizio: 1.Specifiche Si richiede di realizzare una classe che implementa il funzionamento di un telefono cellulare Tale classe
DettagliSpecifica i tipi di oggetti a creare, utilizzando un istanza prototipo, e crea nuove istanze tramite la copia di questo prototipo.
Prototype 28 4. Prototype (GoF pag. 117) 4.1. Descrizione 4.2. Esempio Specifica i tipi di oggetti a creare, utilizzando un istanza prototipo, e crea nuove istanze tramite la copia di questo prototipo.
DettagliProgrammazione ad Oggetti: JAVA. Esercitazione
Programmazione ad Oggetti: JAVA Esercitazione Docente Ing. Mariateresa Celardo mariateresa.celardo@uniroma2.it Scrivere la classe Motorino che ha i seguenti attributi colore: una stringa indicante il colore
DettagliDesign Pattern in Java
Design Pattern in Java Claudio Di Ciccio, Massimiliano de Leoni (con la supervisione del docente Massimo Mecella) Università di Roma La Sapienza - Sede di Latina Corso di Progettazione del Software A.A.
DettagliSOMMARIO Coda (queue): QUEUE. QUEUE : specifica QUEUE
SOMMARIO Coda (queue): Specifica: interfaccia. Implementazione: Strutture indicizzate (array): Array di dimensione variabile. Array circolari. Strutture collegate (nodi). Prestazioni. Strutture Software
Dettaglivoid funzioneprova() { int x=2; cout<<"dentro la funzione x="<<x<<endl; }
FUNZIONI 57. Cosa servono le funzioni? A spezzare il programma in diverse parti relativamente indipendenti fra loro, ovvero interagenti sono attraverso i parametri di input ed IL VALORE di uscita. In questo
Dettaglihttp://www.programmiamo.altervista.org/c/oop/o...
PROGRAMMIAMO Programma per la gestione di un conto corrente C++ - Costruttore e distruttore C++ Home Contatti Supponiamo ora di voler scrivere un programma a menu per la gestione di un conto corrente bancario.
DettagliLA MOLTIPLICAZIONE IN CLASSE SECONDA
LA MOLTIPLICAZIONE IN CLASSE SECONDA Rossana Nencini, 2013 Le fasi del lavoro: 1. Proponiamo ai bambini una situazione reale di moltiplicazione: portiamo a scuola una scatola di biscotti (. ) e diamo la
Dettagli