Introduzione all Object Orientation
|
|
- Gino Carli
- 4 anni fa
- Visualizzazioni
Transcript
1 Introduzione all Object Orientation Introduzione all object orientation Il java è un linguaggio orientato agli oggetti. La classe è il costrutto logico su cui si basano i linguaggi orientati agli oggetti perché definisce la forma e la natura di un oggetto. Qualunque concetto si desideri implementare in un programma java, deve essere incapsulato in una classe. Le classi create fino ad ora esistevano semplicemente per incapsulare il metodo main. La classe definisce un nuovo tipo di dati, che successivamente può essere utilizzato per creare oggetti di quel tipo. La classe è un modello di un oggetto L oggetto è una istanza di una classe 1
2 Introduzione alle classi Forma generale di una classe: class nomeclasse tipo variabile-istanza1; tipo variabile-istanza2; tipo variabile-istanzan; tipo nomemetodo1(elenco parametri) //corpo del metodo tipo nomemetodon(elenco parametri) //corpo del metodo Le variabili (variabili di istanza) ed i metodi definiti all interno di un istruzione class sono definiti membri della classe. Ogni istanza di una classe contiene una propria copia delle variabili di istanza! Introduzione alle classi Una classe semplice: class Box double width; double height; double depth; Una dichiarazione class crea solo un modello, non un vero e proprio oggetto! Per creare realmente un oggetto Box, occorre utilizzare l istruzione: Box mybox = new Box(); mybox = 2
3 Introduzione alle classi Per accedere alle variabili membro si utilizza l operatore punto (.) mybox.width = 100; = 100 mybox = L operatore punto viene usato sia per accedere alle variabili di istanza sia per accedere ai metodi all interno di un oggetto. Introduzione alle classi class Box double width; double height; double depth; class BoxDemo Box mybox=new Box(); double vol; mybox.width=10; mybox.height=20; mybox.depth=15; vol = mybox.width*mybox.height*mybox.depth; System.out.println("volume is " + vol); Attenzione: una classe deve stare in un file.java omonimo 3
4 Introduzione alle classi class Box double width; double height; double depth; class BoxDemo Box mybox1=new Box(); Box mybox2=new Box(); double vol; mybox1.width=10; mybox1.height=20; mybox1.depth=15; mybox2.width=3; mybox2.height=6; mybox2.depth=9; vol=mybox1.width*mybox1.height*mybox1.depth; System.out.println("volume is " + vol); vol=mybox2.width*mybox2.height*mybox2.depth; System.out.println("volume is " + vol); Introduzione alle classi L istruzione seguente: Box mybox = new Box(); è la composizione delle seguenti due fasi: Box mybox; mybox = new Box(); //Dichiarazione del riferimento all oggetto //Allocazione di un oggetto di tipo Box (in fase di esecuzione) Istruzione Effetto Box mybox; null mybox mybox = new Box(); Una classe è un costrutto logico, mentre un oggetto è una realtà fisica. mybox Width Height Depth Oggetto Box 4
5 Introduzione alle classi Le istruzioni seguenti: hanno il seguente effetto: Box b1 = new Box(); Box b2 = b1; b1 Width Height Depth Oggetto Box b2 Qualunque modifica apportata all oggetto mediante b2 influirà sull oggetto a cui fa riferimento b1, poiché sono lo stesso oggetto. Introduzione alle classi I metodi class Box double width; double height; double depth; void volume() //non restituisce alcun valore accetta zero parametri System.out.print("Volume is "); System.out.println(width*height*depth); class BoxDemo3 Box mybox1=new Box(); Box mybox2=new Box(); mybox1.width=10; mybox1.height=20; mybox1.depth=15; mybox2.width=3; mybox2.height=6; mybox2.depth=9; mybox1.volume(); mybox2.volume(); 5
6 Introduzione alle classi I metodi class Box double width; double height; double depth; double volume() //restituisce un valore accetta zero parametri return width*height*depth; class BoxDemo4 Box mybox1=new Box(); Box mybox2=new Box(); double vol; mybox1.width=10; mybox1.height=20; mybox1.depth=15; mybox2.width=3; mybox2.height=6; mybox2.depth=9; vol = mybox1.volume(); System.out.println("Volume is " + vol); vol=mybox2.volume(); System.out.println("Volume is " + vol); Introduzione alle classi I metodi class Box double width; double height; double depth; double volume() return width*height*depth; void setdim(double w, double h, double d) //metodo con parametri width=w; height=h; depth=d; class BoxDemo5 Box mybox1=new Box(); Box mybox2=new Box(); double vol; mybox1.setdim(10,20,15); mybox2.setdim(3,6,9); vol=mybox1.volume(); System.out.println("Volume is " + vol); vol=mybox2.volume(); System.out.println("Volume is " + vol); 6
7 Introduzione alle classi I costruttori Un costruttore inizializza un oggetto immediatamente dopo che è stato creato. Ha lo stesso nome della classe in cui si trova ed è sintatticamente simile ad un metodo. Dopo essere stato definito, il costruttore viene chiamato immediatamente dopo la creazione dell oggetto, prima che l operatore new agisca. I costruttori non hanno alcun tipo di ritorno. Introduzione alle classi I costruttori class Box double width; double height; double depth; Box() //costruttore senza parametri System.out.println("Constructing Box"); width=10; height=10; depth=10; double volume() return width*height*depth; class BoxDemo6 Box mybox1=new Box(); Box mybox2=new Box(); double vol; vol=mybox1.volume(); System.out.println("Volume is " + vol); vol=mybox2.volume(); System.out.println("Volume is " + vol); 7
8 Introduzione alle classi I costruttori class Box double width; double height; double depth; Box(double w, double h, double d) //costruttore con parametri width=w; height=h; depth=d; double volume() return width*height*depth; class BoxDemo7 Box mybox1=new Box(10,20,15); Box mybox2=new Box(3,6,9); double vol; vol=mybox1.volume(); System.out.println("Volume is " + vol); vol=mybox2.volume(); System.out.println("Volume is " + vol); Le 3 parole chiave dell object orientation Programmazione orientata al processo: Codice che agisce sui dati Programmazione ad oggetti: Programma costruito sulla base dei dati e di una serie di interfacce ben definite su questi dati I tre principi base della programmazione ad oggetti: Incapsulamento Meccanismo tramite il quale è possibile controllare rigidamente l accesso al codice e ai dati della classe attraverso un intefaccia ben definita. L accesso ai dati è possibile a prescindere dai dettagli implementativi. Ereditarietà Meccanismo tramite il quale un oggetto acquisisce le propietà di un altro. Classificazione gerarchica. L ereditarietà interagisce con l incapsulamento: se una data classe incapsula alcuni attributi, allora qualsiasi sottoclasse comprenderà gli stessi attributi più tutti quelli aggiuntivi dipendenti dalla sua specializzazione. animale labrador da riporto domesticus golden canino barboncino mammifero Polimorfismo Meccanismo tramite il quale un interfaccia può essere utilizzata per un insieme generale di azioni (una interfaccia, più metodi). lupus felino rettile 8
9 Esempio: Una classe stack //Questa classe definisce uno stack di interi contenente 10 valori class Stack int stck[] = new int[10]; int tos; Stack() tos = -1; void push(int item) if(tos==9) System.out.println("Stack is full."); else stck[++tos] = item; int pop() if(tos<0) else System.out.println("Stack underflow."); return 0; return stck[tos--]; Esempio: Una classe stack class TestStack Stack mystack1=new Stack(); Stack mystack2=new Stack(); for(int i=0;i<10;i++) mystack1.push(i); for(int i=10;i<20;i++) mystack2.push(i); System.out.println("Stack in mystack1:"); for(int i=0;i<10;i++) System.out.println(mystack1.pop()); System.out.println("Stack in mystack2:"); for(int i=10;i<20;i++) System.out.println(mystack2.pop()); //INCAPSULAMENTO: queste istruzioni non dovrebbero essere legali! mystack1.tos = -2; mystack2.stck[3] = 100; 9
10 Esempio: Una classe stack //Stack: seconda versione class Stack private int stck[] = new int[10]; private int tos; Stack() tos = -1; void push(int item) if(tos==9) System.out.println("Stack is full."); else stck[++tos] = item; int pop() if(tos<0) else System.out.println("Stack underflow."); return 0; return stck[tos--]; Esempio: Una classe stack class TestStack Stack mystack1=new Stack(); Stack mystack2=new Stack(); for(int i=0;i<10;i++) mystack1.push(i); for(int i=10;i<20;i++) mystack2.push(i); System.out.println("Stack in mystack1:"); for(int i=0;i<10;i++) System.out.println(mystack1.pop()); System.out.println("Stack in mystack2:"); for(int i=10;i<20;i++) System.out.println(mystack2.pop()); //INCAPSULAMENTO: queste istruzioni non sono legali! mystack1.tos = -2; mystack2.stck[3] = 100; 10
11 Polimorfismo class OverloadDemo void test() System.out.println("No parameters"); void test(int a) System.out.println("a: " + a); void test(int a, int b) System.out.println("a and b: " + a + " " + b); double test(double a) System.out.println("double a: " + a); return a*a; I metodi sovraccarichi devono distinguersi per tipo e/o numero di parametri Attenzione! Il tipo di ritorno non è sufficiente a differenziare due versioni di un metodo. Polimorfismo class Overload OverloadDemo ob = new OverloadDemo(); double result; ob.test(); ob.test(10); ob.test(10,20); result = ob.test(123.2); System.out.println("Result of ob.test(123.2): " + result); 11
12 Polimorfismo class OverloadDemo void test() System.out.println("No parameters"); void test(int a, int b) System.out.println("a and b: " + a + " " + b); void test(double a) System.out.println("Inside test(double) a: " + a); Cosa accadrebbe se richiamassimo il metodo test con un parametro intero? Polimorfismo class Overload_bis OverloadDemo ob = new OverloadDemo(); int i=88; ob.test(); ob.test(10,20); ob.test(i); //test() viene richiamato con un parametro intero ob.test(123.2); 12
13 Polimorfismo nei costruttori class Box double width; double height; double depth; Box(double w, double h, double d) width = w; height = h; depth = d; Box() width = -1; height = -1; depth = -1; Box(double len) width = height = depth = len; double volume() return width*height*depth; Polimorfismo nei costruttori class OverloadCons Box mybox1=new Box(10,20,15); Box mybox2=new Box(); Box mycube=new Box(7); double vol; vol=mybox1.volume(); System.out.println("Volume of mybox1 is " + vol); vol=mybox2.volume(); System.out.println("Volume of mybox2 is " + vol); vol=mycube.volume(); System.out.println("Volume of mycube is " + vol); 13
14 Riferimenti Dati in un programma Java: Dati dei tipi primitivi Riferimenti Riferimenti Dati che servono per manipolare gli oggetti Fungono da intermediari rispetto all oggetto e consentono di accedere I campi dati dell oggetto e di invocarne I metodi Riferimenti Dichiarazione di un riferimento Tipo del riferimento e identificatore Tipo del riferimento Nome di una classe Java I riferimenti sono tipati Valore per un riferimento Identificatore di un oggetto della classe corrispondente 14
15 Riferimenti Esempio: Box b1; Calcolatrice c; java.io.bufferedreader br; Semantica della dichiarazione: Assegna alla variabile di tipo riferimento uno spazio nella memoria che può contenere l identificatore di un oggetto della classe corrispondente Attenzione Il riferimento e l oggetto a cui si riferisce sono due dati completamente diversi che corrispondono a zone di memoria diverse Riferimenti Modificatori: public, protected, private Determinano la visibilita del riferimento static Rappresentano attributi/funzionalità intrinseche alla classe stessa, e non sono associati ad un particolare oggetto. Una variabile deve essere di istanza se, concettualmente, il suo valore può essere diverso per oggetti diversi Una variabile dovrebbe essere statica se il suo valore non cambia da un oggetto all'altro Se un metodo accede ad una variabile d'istanza, non può essere statico Se un metodo non accede ad alcuna variabile d'istanza, dovrebbe essere statico final Determina l impossibiloita di ridefinire un metodo Usato per definire costanti in java 15
16 Riferimenti Operazioni possibili su un riferimento: Assegnazione Uso dell oggetto a cui si riferisce (con il. ) Passaggio dei parametri Assegnazione Con un costruttore Con il valore di un altro riferimento Con il valore speciale null Riferimenti Esempio: Box b1 = new Box(); Box b2; b2 = b1; // i due riferim. puntano allo stesso oggetto b1.volume(); // uso del. b1 = null; // assegnamento del valore nullo Una annotazione importante Il riferimento funge da intermediario per l oggetto solo quando si utilizza il punto. In tutti gli altri casi si lavora con il valore del riferimento Esempio un pezzo di codice che, date due circonferenze, verifica se hanno gli stessi valori (centro e raggio) 16
17 Confronti Una prima soluzione (errata): Circonferenza c1 = new Circonferenza (1, 1, 2); Circonferenza c2 = new Circonferenza (1, 1, 2); if (c1 == c2) System.out.println( Circonferenze di valore uguale ); Una seconda soluzione: Circonferenza c1 = new Circonferenza (1, 1, 2); Circonferenza c2 = new Circonferenza (1, 1, 2); if (c1.getascissacentro() == c2.getascissacentro() && c1.getordcentro() == c2.getordinatacentro() && c1.getraggio() == c2.getraggio()) System.out.println ( Circonferenze uguali ); Confronti Di conseguenza: attenzione ai confronti tra oggetti Due tipi di confronti: confronti tra i riferimenti (confrontano gli id. degli oggetti puntati): servono a verificare se due rif. puntano allo stesso oggetto confronti tra i valori degli oggetti: servono a verificare se oggetti diversi hanno gli stessi valori per le proprietà 17
18 Confronti Un altro esempio: uguaglianza di stringhe. Verificare se due nomi sono uguali a Paolo String nome1 = new String ( Paolo ); String nome2 = new String ( Paolo ); if (nome1 == nome2 && nome1 == Paolo ) System.out.println( Si chiamano entrambi Paolo ); Soluzione errata: stiamo confrontando di nuovo I riferimenti public boolean equals ( Object o ); Confronti La versione corretta: String nome1 = new String ( Paolo ); String nome2 = new String ( Paolo ); if (nome1.equals(nome2) && nome1.equals( Paolo )) System.out.println( Si chiamano entrambi Paolo ); Implementazione di un metodo equals: public boolean equals ( Object o ) If ( (o instanceof Box) && (this.width == ((Box)o).width) && (this.height == ((Box)o).height) && (this.depth == ((Box)o).depth) ) ) return true; else return false; 18
19 Riferimento this Il Riferimento this : Riferimento di un oggetto a sè stesso Non ha senso nei metodi statici E particolare perchè si riferisce, a seconda del contesto, ad oggetti diversi Regola generale: Nel codice del metodo, il valore del riferimento this variadachiamataa chiamata. Ogni volta ha il valore del riferimento utilizzato per effettuare la chiamata del metodo Viene anche detto parametro implicito del metodo Passaggio dei parametri Per cominciare: parametri e argomenti in Java possono essere di due tipi (come le variabili): ditipodibase di tipo riferimento In sintesi: Java prevede esclusivamente il passaggio per valore per cui non è possibile, in un metodo, modificare il valore di un argomento attraverso un parametro Ma: Java prevede i riferimenti, e con i riferimenti nei metodi si possono modificare gli oggetti 19
20 Passaggio dei parametri Distinguiamo 2 tipologie di parametri: Passaggio dei parametri dei tipi di base: nel caso di valori dei tipi di base il passaggio avviene sempre per valore quindi non è possibile in alcun modo modificare il valore di un argomento di un tipo di base attraverso un parametro in un metodo Passaggio dei riferimenti: anche i riferimenti vengono passati ai metodi per valore (copia del valore dell argomento nello spazio di memoria del parametro) ðma, siccome il metodo riceve una copia del riferimento all oggetto, attraverso il riferimento può usare l oggetto e quindi modificarne lo stato si ottiene l effetto del passaggio per riferimento Passaggio dei parametri public void somma(double a, double b) this.risultato = a + b; public static void main(string[ ] args) double x, y; x = 20; y = 10; Calcolatrice c = new Calcolatrice(); c.somma(x, y); 20
21 Passaggio dei parametri public void somma(double a, double b) this.risultato = a + b; a++; public static void main(string[ ] args) double x, y; x = 20; y = 10; Calcolatrice c = new Calcolatrice(); c.somma(x, y); System.out.println(x); // stampa 20 Passaggio Parametri public class parametri int x = 1; double d[] = new double[2]; d[0] = 25; metodo(d,x); System.out.println("Il valore di d[0] = " + d[0]); System.out.println("Il valore di x = " + x); static void metodo(double s[],inti) s[0] = 100; i = 18; 21
Programmazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Sintassi e Semantica Riferimenti versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
DettagliCapitolo 7. Un occhiata più attenta a metodi e classi
Capitolo 7 Un occhiata più attenta a metodi e classi 7.1 Sovraccaricare i metodi 7.2 Utilizzare gli oggetti come parametri 7.3 Un occhiata più attenta al passaggio degli argomenti 7.4 Restituire gli oggetti
DettagliA. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas
Classi e oggetti A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas Oggetti La programmazione orientata agli oggetti, OOP (Object-Oriented Programming),
DettagliOggetti. La programmazione orientata agli oggetti, OOP (Object-Oriented Programming), prende il nome dall elemento su cui si basa, l oggetto.
Classi e oggetti Oggetti La programmazione orientata agli oggetti, OOP (Object-Oriented Programming), prende il nome dall elemento su cui si basa, l oggetto. OOP Vantaggi facilità di lettura e di comprensione
Dettagli14 - Metodi e Costruttori
14 - Metodi e Costruttori 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
DettagliProgrammazione I - corso B a.a prof. Viviana Bono
Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 2009-10 prof. Viviana Bono Blocco 12 Riepilogo e complementi sui tipi Ripasso del sistema di tipi
DettagliDichiarazione di una classe. Dichiarazione ereditarietà
Introduzione Il Java è un linguaggio di programmazione orientato agli oggetti (OOL), perché permette di realizzare in un programma tutti i concetti alla base dell OOP quali: l astrazione dei dati, mediante
DettagliClassi ed Oggetti. Fondamenti di Informatica A-K
Classi ed Oggetti Fondamenti di Informatica A-K Esercitazione 5 Introduzione al calcolatore e Java Linguaggio Java, basi e controllo del flusso I metodi: concetti di base Stringhe ed array Classi e oggetti,
DettagliProgrammazione con Java
Programmazione con Java Classi e istanze in Java Definizione di classe in Java A meno che non si usino classi già scritte da altri, prima di poter creare un qualsiasi oggetto devo creare la sua rappresentazione:
DettagliProgrammazione orientata agli oggetti La classe Object, metodi e classi final, this. Object
Programmazione orientata agli oggetti La classe, metodi e classi final, this 1 La classe Negli esempi fatti nella prima parte del corso abbiamo definito alcune classi, per esempio Counter e Orologio, senza
DettagliProgrammazione orientata agli oggetti La classe Object, metodi e classi final, this. Object
Programmazione orientata agli oggetti La classe, metodi e classi final, this 1 La classe Negli esempi fatti nella prima parte del corso abbiamo definito alcune classi, per esempio Counter e Orologio, senza
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
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Sintassi e Semantica Componenti versione 2.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
DettagliOCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO
CENTRO STUDI ULISSE Via Buccino, n. 22 - C.a.p. 84018 - Scafati (SA) Tel. Fax. 081.19970299-339.2365416-349.4152010 E-mail: info@centrostudiulisse.it - www.centrostudiulisse.it OCA JAVA 7 SE PROGRAMMER
DettagliConfrontare valori 1
Confrontare valori 1 Confrontare valori Le condizioni dell enunciato if sono molto spesso dei confronti tra due valori if (x >= 0) y = x; Gli operatori di confronto si chiamano operatori relazionali >
DettagliMetodi statici. Dichiarazione e chiamata di metodi statici
Metodi statici Dichiarazione e chiamata di metodi statici Cos è un metodo Un metodo è un blocco di istruzioni che fornisce una funzionalità e viene identificato con un nome Può avere dei parametri ed un
DettagliArray. Definizione e utilizzo di vettori
Array Definizione e utilizzo di vettori Array (1/2) Un array o vettore rappresenta un insieme di elementi dello stesso tipo. Sintassi per la creazione di un array: tipo_elementi[] nome; nome = new tipo_elementi[numero_elementi];
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Sintassi e Semantica Introduzione versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
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 Oggetti e Classi Metodi Parametri Variabili di istanza Costruttori Esercizi Paradigma Object-Oriented Il paradigma OO
DettagliProgrammazione ad oggetti
Programmazione ad oggetti OOP La programmazione orientata agli oggetti (Object Oriented Programming) ha l obiettivo di formalizzare gli oggetti del mondo reale e di costruire con questi un mondo virtuale.
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Metafora Parte a versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
DettagliFondamenti di Programmazione Prof.ssa Elisa Tiezzi. Programmazione orientata a oggetti
Fondamenti di Programmazione Prof.ssa Elisa Tiezzi Programmazione orientata a oggetti 1 Programmazione OO Concetti base: dati istruzioni Dati: variabili tipi Istruzioni: istruzioni base strutture di controllo
DettagliIL LINGUAGGIO JAVA. Input, Tipi Elementari e Istruzione Condizionale. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica
Fondamenti di Informatica IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica - D. Talia - UNICAL 1 Primo esempio di un programma Java Semplicissimo programma
DettagliLe classi in java. Un semplice programma java, formato da una sola classe, assume la seguente struttura:
Le classi in java Un semplice programma java, formato da una sola classe, assume la seguente struttura: class Domanda static void main(string args[]) System.out.println( Quanti anni hai? ); La classe dichiarata
DettagliProprietà delle Classi e degli Oggetti in Java
Fondamenti di Informatica Proprietà delle Classi e degli Oggetti in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Proprietà object-oriented di Java Definendo le caratteristiche e le operazioni di
DettagliProgrammazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014
Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 11 luglio 2014 TEMPO DISPONIBILE: 2 ore Negli esercizi
DettagliIL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale
Fondamenti di Informatica IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica - D. Talia - UNICAL 1 Lettura di dati da input In Java la lettura di dati da input
DettagliProprietà delle Classi e degli Oggetti in Java
Fondamenti di Informatica Proprietà delle Classi e degli Oggetti in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Proprietà object-oriented di Java Definendo le caratteristiche e le operazioni di
DettagliEreditarietà. Unità 9. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER
Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione prof. Domenico
DettagliModello procedurale versus modello O-O
Modello procedurale versus modello O-O Quando si scrive un programma si crea dentro il calcolatore un modello di una porzione del mondo reale. I linguaggi di programmazione procedurali consentono di costruire
DettagliParadigmi della PO. Incapsulamento. Ereditarietà. Polimorfismo. Software per TLC - AA 2008/2009 1
Incapsulamento Paradigmi della PO Ereditarietà Polimorfismo Software per TLC - AA 2008/2009 1 Incapsulamento Una classe contiene dati e metodi Filosofia Ai dati si accede solo attraverso i metodi I metodi
DettagliUso di classi e oggetti. Prof. Francesco Acarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni
Uso di classi e oggetti Prof. Francesco Acarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni Tipi di dati Tipi primitivi: interi Java fornisce otto tipi primitivi indipendenti dall implementazione
DettagliIL LINGUAGGIO JAVA. Input, Tipi Elementari e Istruzione Condizionale. Primo esempio di un programma Java
Fondamenti di Informatica IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica - D. Talia - UNICAL 1 Primo esempio di un programma Java Semplicissimo programma
DettagliJava: Definire Classi e Creare Oggetti
Dipartimento di Informatica, Università degli Studi di Verona Corso di Programmazione per Bioformatica lezione del 21 marzo 2014 Introduzione Programmare con gli Oggetti Un programma Java è costituito
DettagliMetodi statci. Dichiarazione e chiamata di metodi statci
Metodi statci Dichiarazione e chiamata di metodi statci Cos è un metodo Un metodo è un blocco di istruzioni che fornisce una funzionalità e viene identificato con un nome Può avere dei parametri ed un
DettagliL oggetto creato. Creazione di Oggetti. Rectangle: il concetto 10. Costruzione. Lo spazio di memoria del linguaggio Java. Rectangle: l oggetto
Usare e costruire oggetti Variabili e Oggetti Lo spazio di memoria di Java Le API di Java Gli oggetti sono entità di un programma che si possono manipolare invocando i metodi System.out oggetto della classe
Dettagli18 - Classi parzialmente definite: Classi Astratte e Interfacce
18 - Classi parzialmente definite: Classi Astratte e Interfacce Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/
Dettagli17 - Classi parzialmente definite: Classi Astratte e Interfacce
17 - Classi parzialmente definite: Classi Astratte e Interfacce Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/
DettagliProgrammazione. Cognome... Nome... Matricola... Prova scritta del 20 febbraio 2012
Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 20 febbraio 2012 TEMPO DISPONIBILE: 1 ora Negli
DettagliUguaglianza e copia di oggetti
Uguaglianza e copia di oggetti Sommario 1. Classi Object e Class 2. Uguaglianza superficiale e uguaglianza profonda 3. Copia superficiale e copia profonda 4. Uguaglianza e copia in classi derivate 1 La
DettagliGerarchia di classi Java 1
Specializzare un modello Gerarchia di classi Java Corso di laurea in Una classe modella un pezzo di realtà Una macchina, una moneta, un impiegato Spesso è necessario specializzare la versione originale
DettagliFondamenti di Informatica
Fondamenti di Informatica (L-Z) Corso di Laurea in Ingegneria Gestionale Object Oriented Programming: Fondamenti Prof. Stefano Mariani Dott. Alket Cecaj Indice Introduzione all OOP Classi vs. oggetti Campi
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Metafora Parte c versione 1.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
DettagliOCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO
CENTRO STUDI ULISSE Via Buccino, n. 22 - C.a.p. 84018 - Scafati (SA) Tel. Fax. 081.19970299-339.2365416-349.4152010 E-mail: info@centrostudiulisse.it - www.centrostudiulisse.it OCA JAVA 7 SE PROGRAMMER
DettagliFondamenti di informatica T-1 (A K) Esercitazione 9: array
Fondamenti di informatica T-1 (A K) Esercitazione 9: array AA 2018/2019 Tutor Lorenzo Rosa lorenzo.rosa@unibo.it 2 Esercitazione 9 Introduzione al calcolatore e Java Linguaggio Java, basi e controllo del
DettagliProgrammazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013
Programmazione a Oggetti e JAVA Prof. B.Buttarazzi A.A. 2012/2013 Sommario Array Array monodimensionali Array bidimensionali Esercizi 16/01/2013 2 ARRAY Gli array sono oggetti utilizzati in Java per memorizzare
DettagliProgrammazione orientata agli oggetti La classe Object, metodi e classi final, this. Object
Programmazione orientata agli oggetti La classe, metodi e classi final, this 1 La classe Negli esempi fatti nella prima parte del corso abbiamo definito alcune classi, per esempio Counter e Orologio, senza
DettagliESERCIZI JAVA. Esercizi sulle Interfacce. Esercizio 1:
ESERCIZI JAVA Esercizi sulle Interfacce Esercizio 1: Java mette a disposizione un'interfaccia chiamata Comparable. Quando un oggetto implementa questa interfaccia esso può implementare un metodo chiamato
DettagliMETODI in Java. Prof.Angela Bonifati. Metodi e Sottoprogrammi
Fondamenti di Informatica METODI in Java Prof.Angela Bonifati 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile definire nuovi tipi di dati, tramite i metodi è possibile
DettagliLa classe java.lang.object
La classe java.lang.object In Java: Gerarchia di ereditarietà semplice Ogni classe ha una sola super-classe Se non viene definita esplicitamente una super-classe, il compilatore usa la classe predefinita
DettagliLaboratorio di Sistemi Polimorfismo Java. Prerequisiti: per la comprensione dell'articolo è necessario conoscere il concetto di Ereditarietà in Java.
Prerequisiti: per la comprensione dell'articolo è necessario conoscere il concetto di Ereditarietà in Java. Di solito se abbiamo la struttura di una classe con gli attributi e i metodi possiamo istanziare
DettagliProgrammazione Java Struttura di una classe, Costruttore, Riferimento this
Programmazione Java Struttura di una classe, Costruttore, Riferimento this romina.eramo@univaq.it http://www.di.univaq.it/romina.eramo/tlp Roadmap > Struttura di una classe > Costruttore > Riferimento
DettagliFondamenti di Java. Soluzione esercizio hashcode
Fondamenti di Java Soluzione esercizio hashcode Esercizio Definire una classe con una hashcode corretta. Aggiungere delle istanze "uguali" a un set, e controllare la dimensione del set ottenuto. Vi torna
DettagliDefinizione di classi. Walter Didimo
Definizione di classi Walter Didimo Definizione di classi Fino ad ora abbiamo imparato a: creare oggetti da classi già pronte usare gli oggetti creati, invocando metodi la creazione e l uso di oggetti
DettagliProgrammazione in Java (I modulo) Lezione 21: Classi derivate e l'operatore instanceof Riscrivere il metodo tostring() Riscrivere il metodo equals()
Programmazione in Java (I modulo) Lezione 21: Classi derivate e l'operatore instanceof Riscrivere il metodo tostring() Riscrivere il metodo equals() Ereditarietà (Inheritance) RIASSUMIAMO DALLA SCORSA
DettagliArray. Walter Didimo
Array Walter Didimo Un problema ricorrente Gli strumenti di programmazione che abbiamo visto sin qui non sono ancora sufficienti per risolvere tutti i problemi di base Consideriamo ad esempio il seguente
DettagliGerarchia di classi Java 1
Specializzare un modello Gerarchia di classi Java Corso di laurea in Una classe modella un pezzo di realtà Una macchina, una moneta, un impiegato Spesso è necessario specializzare la versione originale
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Sintassi e Semantica Uso dei Componenti versione 2.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima
DettagliProgrammazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre 2014. Negli esercizi proposti si utilizzano le seguenti classi:
Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 22 settembre 2014 TEMPO DISPONIBILE: 2 ore Negli
DettagliEsempi al calcolatore su: 1) Costruttori ed ereditarietà 2) Subtyping e polimorfismo
Esempi al calcolatore su: 1) 2) Subtyping e polimorfismo 1 Esempio 1: 2 Introduzione Java prevede due automatismi legati ai costruttori: Se una classe non ha costruttori viene creato automaticamente il
DettagliEreditarietà: concetti di base
: concetti di base L ereditarietà è uno dei concetti base della programmazione ad oggetti Concetto di base: l ereditarietà permette di usare una classe precedentemente definita per la definizione di una
DettagliEsempio su strutture dati dinamiche: ArrayList
Esempio su strutture dati dinamiche: ArrayList 1 ArrayList Abbiamo detto che gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito al momento della creazione
DettagliFondamenti di informatica T-1 (A K) Esercitazione 8: classi e oggetti
Fondamenti di informatica T-1 (A K) Esercitazione 8: classi e oggetti AA 2018/2019 Tutor Lorenzo Rosa lorenzo.rosa@unibo.it 2 Esercitazione 8 Introduzione al calcolatore e Java Linguaggio Java, basi e
DettagliPROGRAMMAZIONE 2 4. Java: un modello operazionale
PROGRAMMAZIONE 2 4. Java: un modello operazionale PR2 2018-2019 1 Abstract Stack Machine Abstract Stack Machine: modello computazionale per Java che permette di descrivere la nozione di stato modificabile
DettagliL Array e un oggetto. L array puo contenere elementi che sono: tipi primitivi, o oggetti (in realta riferimenti ad oggetti!!!).
Arrays Idea Fornire il concetto di array presente nei piu comuni linguaggi di programmazione Un array e una struttura statica, una volta creato la sua dimensione (numero di elementi che lo compongono)
Dettagli19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
19 - Eccezioni 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
DettagliVariabili e Metodi di classe Interfacce e Package Gestione di File in Java
Fondamenti di Informatica Variabili e Metodi di classe Interfacce e Package Gestione di File in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Variabili di classe: Static Una variabile di classe
Dettagliunità di compilazione
Il linguaggio Java Il controllo degli accessi alle classi ed ai membri di una classe Controllo degli accessi Accesso alle classi Accesso alle classi package miopackage; public class A { B b = new B();
DettagliVariabili e Metodi di classe Interfacce e Package File in Java
Fondamenti di Informatica Variabili e Metodi di classe Interfacce e Package File in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Variabili di classe: Static Una variabile di classe definisce un
DettagliEsempi al calcolatore su: 1) Costruttori ed ereditarietà 2) Subtyping e Polimorfismo
Esempi al calcolatore su: 1) 2) Subtyping e Polimorfismo 1 Esempio 1: 2 Introduzione Java prevede due automatismi legati ai costruttori: Se una classe non ha costruttori viene creato automaticamente il
DettagliProgrammazione M.A. Alberti. Comunicazione digitale AA 2009/ Classi in Java 1. Le classi in Java. Oggetti. Classi. Classi. Visibilità dei dati
Oggetti Le classi in Java Corso di laurea in Un oggetto è definito dal suo stato - descrive le sue caratteristiche comportamento - quello che può fare Ad esempio: il modello di una moneta Una moneta può
DettagliEsonero del corso di Programmazione a Oggetti
Esonero del corso di Programmazione a Oggetti Roma, 26 novembre 2008 Considerate le seguenti definizioni di classi e interfacce in Java: class P {public static void print(string s){system.out.println(s);
DettagliProgrammazione orientata agli oggetti Oggetti Composti. Oggetti composti
Programmazione orientata agli oggetti Oggetti Composti 1 - 1 Negli esempi che abbiamo visto finora gli attributi delle classi erano variabili di tipo primitivo E però possibile definire come attributi
DettagliCorso sul linguaggio Java
Corso sul linguaggio Java Modulo JAVA4 A2 Utilizzo di classi 1 Prerequisiti Implementazione di classi Funzionamento di una classe Parametri formali e attuali di una funzione 2 1 Introduzione In questa
DettagliOggetti e dati primitivi 1
I membri delle classi Oggetti e dati primitivi Corso di laurea in Le classi contengono 2 tipi di membri, definiti per l intera classe o per le singole istanze Le variabili o i campi, che rappresentano
Dettagli16 - Ereditarietà, tipi e gerarchie
16 - Ereditarietà, tipi e gerarchie 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
Dettagli16 - Ereditarietà, tipi e gerarchie
16 - Ereditarietà, tipi e gerarchie Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: C# versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca
Dettagli17 - Ereditarietà, tipi e gerarchie
17 - Ereditarietà, tipi e gerarchie 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
Dettagli9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
9 - Array 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 Laurea
DettagliSTRINGHE IN JAVA In Java, le stringhe non sono pezzi di memo-ria con dentro dei caratteri, come in C: sono oggetti appartenenti alla classe
STRINGHE IN JAVA In Java, le stringhe non sono pezzi di memo-ria con dentro dei caratteri, come in C: sono oggetti appartenenti alla classe String Una stringa Java rappresenta uno specifico valore e come
DettagliCorso sul linguaggio Java
Corso sul linguaggio Java Modulo JAVA9 B3.1 Mutua esclusione 1 Prerequisiti Programmazione concorrente Sezione critica Mutua esclusione lock() e unlock() 2 1 Introduzione Si considerino le seguenti situazioni
DettagliCorso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori A.A. 2009/2010
Corso di Laurea in Ingegneria Informatica Corso di Reti di Calcolatori l Introduzione ai Thread in Java A.A. 2009/2010 1 Thread Un thread è un flusso sequenziale di esecuzione di istruzioni all interno
DettagliJava Gli array. Array
Java Gli array 1 Gli array In generale un array è una sequenza di locazioni di memoria, che contengono entità dello stesso tipo, e a cui si può fare riferimento con un nome comune Le entità che compongono
DettagliUsare e costruire oggetti. Concetti Fondamentali. Interfaccia Pubblica di una. Application Program Interface
Concetti Fondamentali Interfaccia pubblica di una classe Le API di Java Lo spazio di memoria della macchina astratta Java Blocchi e sottoblocchi Variabili di frame e loro visibilità Importazioni di classi
DettagliDo...While() Break Continue Concetto di Funzione e Procedura METODI in Java
Fondamenti di Informatica Do...While() Break Continue Concetto di Funzione e Procedura METODI in Java Prof.Angela Bonifati 1 Istruzione while int vet1[] = new int[20]; int vet2[] = new int[20]; for(int
DettagliSTRINGHE IN JAVA In Java, le stringhe non sono pezzi di memo-ria con dentro dei caratteri, come in C: sono oggetti appartenenti alla classe
STRINGHE IN JAVA In Java, le stringhe non sono pezzi di memo-ria con dentro dei caratteri, come in C: sono oggetti appartenenti alla classe String Una stringa Java rappresenta uno specifico valore e come
DettagliStrutture dati. Il che cosa e il come. F. Damiani - Alg. & Lab. 04/05
Strutture dati Il che cosa e il come Il che cosa ed il come Struttura dati: descrive come sono organizzati i dati e come sono realizzate le operazioni su di essi (cioe come si accede ai dati) Specifica
Dettagli3. un metodo che restituisce l elenco delle matricole di tutti gli studenti del corso;
Un esempio di definizione di classe con array di oggetti Sia data la classe StudUniv per gli studenti universitari (definita in una lezione precedente). Scrivere una nuova classe Corso, dove ciascun corso
DettagliProgrammazione ad oggetti
DAIS Univ. Ca' Foscari Venezia Programmazione ad oggetti Samuel Rota Bulò Classi Una classe è un tipo strutturato. Gli oggetti sono istanze di classi. Una classe è composta da: ModalitàDiAccesso class
DettagliIntroduzione alla Programmazione in Java attraverso un esempio commentato
Corso di Studi in Informatica Programmazione 1 corso B prof. Elio Giovannetti Introduzione alla Programmazione in Java attraverso un esempio commentato Programmazione 1 B - a.a. 2002-03 53 Modello di memoria
DettagliFondamenti di informatica T-1 (A K) Esercitazione 7: metodi, classi, oggetti
Fondamenti di informatica T-1 (A K) Esercitazione 7: metodi, classi, oggetti AA 2018/2019 Tutor lorenzo.rosa@unibo.it 2 Esercitazione 7 Introduzione al calcolatore e Java Linguaggio Java, basi e controllo
Dettagli