Implementare le classi
|
|
- Dorotea Salvatore
- 5 anni fa
- Visualizzazioni
Transcript
1 Implementare le classi C. Horstmann Fondamenti di programmazione e Java 2 3^ edizione Apogeo trad. Nicola Fanizzi corso di Programmazione, CdS: Informatica TPS Dip. di Informatica, Università degli studi di Bari
2 Obiettivi 2 Familiarizzare col processo di implementazione delle classi Essere in grado di implementare semplici metodi Capire lo scopo e l'uso dei costruttori Capire come accedere campi d'istanza e variabili locali Sperimentare l'importanza dei commenti per la documentazione
3 Scatole Nere 3 Una scatola nera fa il suo lavoro come per magia Nasconde il lavoro all'interno Incapsulamento: nascondere i dettagli meno importanti Qual è il giusto concetto per ogni particolare scatola nera?
4 Scatole Nere 4 I concetti si scoprono attraverso un meccanismo di astrazione astrazione: togliere caratteristiche inessenziali finché rimane solo l'essenza del concetto Nella programmazione orientata agli oggetti le scatole nere con cui si costruiscono i programmi sono dette oggetti
5 Livelli di Astrazione: 5 Esempio dal Mondo Reale Scatole nere in un'auto: trasmissione centralina elettronica ecc...
6 Livelli di Astrazione: 6 Esempio dal Mondo Reale Gli utenti di un'auto non han bisogno di capire come funzionano nei dettagli queste scatole nere L'interazione di una scatola nera con il mondo esterno è ben definita: I guidatori interagiscono con l'auto usando pedaliera, bottoni, ecc. Un meccanico sa controllare che la centraline mandi i giusti segnali di accensione alle candele Per i produttori di centraline i transistor e condensatori sono scatole nere prodotte da un'azienda di componenti elettronici
7 Livelli di Astrazione: 7 Esempio dal Mondo Reale L'incapsulamento porta all'efficienza: I meccanico si preoccupa solo dei componenti dell'automobile (es. centralina), non dei sensori o dei transistor Il guidatore si preoccupa solo dell'interazione con la macchina (es. fare benzina), non del motore o delle parti elettroniche
8 Livelli di Astrazione: 8 Progettazione di Software
9 Livelli di Astrazione: 9 Progettazione di Software Passato: programmi che manipolavano tipi primitivi come numeri e caratteri Manipolare troppe di tali quantità primitive diventa difficile per i programmatori e porta ad errori Soluzione: Incapsulare i calcoli di routine in scatole nere di tipo software
10 Livelli di Astrazione: 10 Progettazione di Software L'astrazione serve ad inventare tipi di dato di alto livello Nella programmazione object-oriented, gli oggetti sono le scatole nere Incapsulamento: Il programmatore che usa un oggetto deve conoscere il suo comportamento esterno, non necessariamente la sua struttura interna
11 Livelli di Astrazione: 11 Progettazione di Software Nella progettazione di software design, si possono progettare buone o cattive astrazioni con la stessa facilità Comprendere la buona progettazione è una parte importante nella formazione di un ingegnere del software Occorre prima: definire il comportamento di una classe dopo: implementarlo
12 Progettazione dell'interfaccia 12 Pubblica Comportamento di un conto bancario (astrazione): Depositare denaro Ritirare denaro Chiedere il saldo
13 Progettazione dell'interfaccia 13 Pubblica: Metodi Metodi della classe BankAccount: deposit withdraw getbalance Vogliamo supportare le chiamate al metodo simili alla seguente: harryschecking.deposit(2000); harryschecking.withdraw(500); System.out.println(harrysChecking.getBalance());
14 Progettazione dell'interfaccia 14 Pubblica: Definizione dei Metodi Specificatore di accesso (come public) Tipo di ritorno (come String oppure void) Nome di metodo (come deposit) Lista dei parametri (double( amount per deposit) Corpo del metodo tra { }
15 Progettazione dell'interfaccia 15 Pubblica: Definizione dei Metodi Esempi public void deposit(double amount) {... } public void withdraw(double amount) {... } public double getbalance() {... }
16 Sintassi 3.1: Definizione dei 16 Metodi specificatoreaccesso tiporitorno nomemetodo (tipoparametro nomeparametro,...). { corpometodo } Esempio: public void deposit(double amount) {... } Scopo: definire il comportamento di un metodo
17 Definizione del Costruttore 17 Un costruttore inizializza le variabili d'istanza (o d'esemplare) Nome del costruttore = nome della classe public BankAccount() { // corpo riempito più tardi }
18 Definizione del Costruttore 18 Il corpo del costruttore viene eseguito quando si crea un nuovo oggetto Le istruzioni nel corpo di un costruttore impostano i dati interni (stato) dell'oggetto che si costruisce Tutti i costruttori di una classe hanno lo stesso nome Il compilatore sa distinguere tra i vari costruttori poiché essi accettano parametri differenti
19 Sintassi 3.2: 19 Definizione di Costruttore accessspecifier ClassName(parameterType parametername,,...). { constructor body } Esempio public BankAccount(double initialbalance) {... } Scopo: : Definire il comportamento di un costruttore
20 BankAccount 20 Interfaccia Pubblica I costruttori pubblici e tutti i metodi di una classe formano l'interfaccia pubblica della classe public class BankAccount { // Costruttori public BankAccount() { // corpo da riempire in seguito } public BankAccount(double initialbalance) { // corpo da riempire in seguito } // Metodi public void deposit(double amount)
21 BankAccount 21 Interfaccia Pubblica } { // corpo da riempire in seguito } public void withdraw(double amount) { // corpo da riempire in seguito } public double getbalance() { // corpo da riempire in seguito } // campi privati da riempire in seguito
22 Sintassi 3.3: 22 accessspecifier class ClassName { constructors methods fields } Esempio Definizione di Classe public class BankAccount { public BankAccount(double initialbalance) {... } public void deposit(double amount) {... }... } Scopo: : definire una classe, la sua interfaccia pubblica ed i dettagli implementativi
23 Commentare l'interfaccia 23 Pubblica /** Ritira denaro dal conto amount l'ammontare da ritirare */ public void withdraw(double amount) { // implementato in seguito } /** Ottiene il saldo del conto il saldo corrente */ public double getbalance() { // implementato in seguito }
24 Commenti di Documentazione 24 Fornire commenti per la documentazione di Ogni classe Ogni metodo Ogni parametro Ogni valore di ritorno /** Un conto corrente ha un saldo che può essere cambiato da depositi e prelievi. */ public class BankAccount {... }
25 Riassunto Javadoc dei Metodi 25
26 Javadoc: 26 Dettagli di un Metodo
27 Campi di Istanza 27 Un oggetto memorizza i suoi dati (stato) in campi d'istanza Campo: termine tecnico per l'allocazione in un'area di memoria Istanza di una classe: un oggetto della classe La dichiarazione della classe specifica i campi delle istanze: public class BankAccount { }... private double balance;
28 Campi di Istanza 28 La dichiarazione di un campo consiste nelle parti seguenti: Specificatore d'accesso (come private) Tipo della variabile (come double) Nome della variabile (come balance) Ogni oggetto di una classe ha il suo insieme di campi d'istanza Si dovrebbero dichiarare tutte le istanze come private
29 Campi di Istanza 29
30 Sintassi 3.4: 30 Dichiarazione dei campi accessspecifier class ClassName { }... accessspecifier fieldtype fieldname;... Esempio: public class BankAccount {... private double balance;... } Scopo: : definire un campo che sia presente in ogni oggetto della classe
31 Accedere ai Campi d'istanza 31 Il metodo deposit della classe BankAccount può accedere ai campi d'istanza privati: public void deposit(double amount) { double newbalance = balance + amount; balance = newbalance; }
32 Accedere ai Campi d'istanza 32 Gli altri metodi non possono: public class BankRobber { public static void main(string[] args) { BankAccount momssavings = new BankAccount(1000);... momssavings.balance = -1000; // ERROR } } Incapsulamento = nascondere i dati e fornire accesso attraverso i metodi
33 Implementare i Costruttori 33 I costruttori contengono istruzioni per inizializzare i campi di un oggetto public BankAccount() { balance = 0; } public BankAccount(double initialbalance) { } balance = initialbalance;
34 Esempio 34 BankAccount harryschecking = new BankAccount(1000); Crea un nuovo oggetto di tipo BankAccount Chiama il secondo costruttore (dato che si fornisce un parametro di costruzione) Imposta il parametro initialbalance a 1000 Imposta il campo balance dell'oggetto apnea creato ad initialbalance Restituisce un riferimento, cioè l'indirizzo in memoria dell'oggetto come valore dell'espressione new Immagazzina il riferimento nella variabile harryschecking
35 Implementare i Metodi 35 Alcuni metodi non ritornano alcun valore public void withdraw(double amount) { double newbalance = balance - amount; balance = newbalance; } Alcuni metodi non restituiscono un valore in output public double getbalance() { return balance; }
36 Esempio: Chiamata di Metodo 36 harryschecking.deposit(500); Imposta il parametro amount a 500 Preleva il campo balance dell'oggetto la cui locazione è immagazzinata in harryschecking Aggiunge il valore di amount a balance e immagazzinare il risultato nella variabile newbalance Immagazzina il valore di newbalance nel campo balance sovrascrivendo il vecchio valore
37 Sintassi 3.5: 37 return expression; oppure return; Esempio: return balance; Esempio: Istruzione return Scopo: : Specificare il valore restituito da un metodo ed uscirvi immediatamente. Esso diventa il valore dell'espressione relativa alla chiamata del metodo
38 File BankAccount.java 38 01: /** 02: Un conto ha un saldo che può essere modificato 03: con depositi e prelievi. 04: */ 05: public class BankAccount 06: { 07: /** 08: costruisce un conto con saldo pari a 0. 09: */ 10: public BankAccount() 11: { 12: balance = 0; 13: } 14: 15: /** 16: Costruisce un conto con il dato saldo. initialbalance saldo iniziale 18: */
39 File BankAccount.java 39 19: public BankAccount(double initialbalance) 20: { 21: balance = initialbalance; 22: } 23: 24: /** 25: Deposita denaro sul conto. amount l'ammontare del deposito 27: */ 28: public void deposit(double amount) 29: { 30: double newbalance = balance + amount; 31: balance = newbalance; 32: } 33: 34: /** 35: Preleva denaro dal conto. amount ammontare del prelievo
40 File BankAccount.java 40 37: */ 38: public void withdraw(double amount) 39: { 40: double newbalance = balance - amount; 41: balance = newbalance; 42: } 43: 44: /** 45: Legge il saldo corrente del conto. il saldo corrente 47: */ 48: public double getbalance() 49: { 50: return balance; 51: } 52: 53: private double balance; 54: }
41 Collaudare una Classe 41 Classe di collaudo: classe con un metodo main contenente istruzioni per testare un'altra classe Tipicamente svolge i seguenti passi: 1) Costruire uno o più oggetti della classe da collaudare 2) Invocare uno o più metodi 3) Stampare uno o più risultati
42 Collaudare una Classe 42 I dettagli sulla costruzione di un programma variano. Nella maggior parte degli ambienti, si devono svolgere questi passi: 1) Creare una nuova cartella per il proprio programma 2) Creare due file, uno per classe 3) Compilare entrambi i file 4) Far girare il programma di collaudo
43 BankAccountTester 43 01: /** 02: A class to test the BankAccount class. 03: */ 04: public class BankAccountTester 05: { 06: /** 07: Tests the methods of the BankAccount class. args not used 09: */ 10: public static void main(string[] args) 11: { 12: BankAccount harryschecking = new BankAccount(); 13: harryschecking.deposit(2000); 14: harryschecking.withdraw(500); 15: System.out.println(harrysChecking.getBalance()); 16: } 17: }
44 Collaudo con BlueJ 44
45 Categorie di Variabili 45 Categorie di variabili Campi d'istanza (balance( in BankAccount) Variabili locali (newbalance( nel metodo deposit) Parametri (amount( nel metodo deposit) Un campo d'istanza appartiene ad un oggetto I campi si mantengono in vita fino a quando nessun oggetto utilizza l'oggetto
46 Categorie di Variabili 46 In Java, il garbage collector periodicamente reclama (la memoria allocata per) oggetti che non sono più usati Variabili locali e parametri appartengono ad un metodo I campi d'istanza sono inizializzati ad un valore di default, ma occorre inizializzare le variabili locali
47 Vita delle Variabili 47 harryschecking.deposit(500); double newbalance = balance + amount; balance = newbalance;
48 Vita delle Variabili 48
49 Vita delle Variabili 49
50 Parametri Impliciti ed Espliciti 50 Il parametro implicito di un metodo è l'oggetto del quale si invoca il metodo Il riferimento this denota tale parametro implicito
51 Parametri Impliciti ed Espliciti 51 L'uso del nome di un campo d'istanza in un metodo denota il campo del parametro implicito public void withdraw(double amount) { double newbalance = balance - amount; balance = newbalance; }
52 Parametri Impliciti ed Espliciti 52 balance è il saldo dell'oggetto a sinistra del punto: momssavings.withdraw(500) significa double newbalance = momssavings.balance - amount; momssavings.balance = newbalance;
53 Parametri Impliciti e this 53 Ogni metodo ha un solo parametro implicito Esso è sempre indicato con this Eccezione: : i metodi statici (static( static) ) non hanno parametri impliciti (vedi cap. 9) double newbalance = balance + amount; // actually means double newbalance = this.balance + amount;
54 Parametri Impliciti e this 54 Quando ci si riferisce ad un campo in un metodo il compilatore automaticamente lo applica a this momssavings.deposit(500);
55 Parametri Impliciti e this 55
Capitolo 2. Utilizzare oggetti
Capitolo 2 Utilizzare oggetti Cay S. Horstmann Concetti di informatica e fondamenti di Java quarta edizione Oggetti e classi Gli oggetti sono entità di un programma che si possono manipolare invocando
DettagliCapitolo 3. Realizzare classi
Capitolo 3 Realizzare classi Obbiettivi del capitolo Acquisire familiarità con il procedimento di realizzazione di classi Essere in grado di realizzare semplici metodi Capire a cosa servono e come si usano
DettagliProge&are le Classi Ing. Massimo Cossen.no Sistemi Informa.vi Aziendali a.a. 2008/2009
Lezione 11 Sistemi Informa.vi Aziendali a.a. 2008/2009 Il sistema da proge/are deve realizzare le operazioni fondamentali di un conto bancario. Le operazioni richieste sono: Versare denaro Prelevare denaro
DettagliOggetti. Oggetti e classi. Utilizzo di classi. Classe
Oggetti Oggetti e classi Oggetto: entità che può essere manipolata nel programma mediante l invocazione di metodi Black box dotato di:! Interfaccia pubblica " Metodi visibili " Comportamento dell oggetto!
DettagliCapitolo 3. Realizzare classi. Cay S. Horstmann Concetti di informatica e fondamenti di Java quarta edizione
Capitolo 3 Realizzare classi Cay S. Horstmann Concetti di informatica e fondamenti di Java quarta edizione Obiettivi del capitolo Acquisire familiarità con il procedimento di realizzazione di classi Essere
DettagliProgetto di classi: Metodi Costruttori Documentazione e commenti Variabili di istanza (campi)
Classi Progetto di classi: Dalla specifica dell interfaccia, alla definizione dell implementazione Metodi Costruttori Documentazione e commenti Variabili di istanza (campi) Progetto di una classe Un conto
DettagliLivelli di astrazione
Realizzare Classi Astrazione Perdita di dettaglio Utile nella descrizione, progettazione, implementazione e utilizzo di sistemi complessi Dettagli trascurabili vengono incapsulati in sottosistemi più semplici
DettagliQuesti lucidi provengono dal Capitolo 7 del libro. Cay S. Horstmann Concetti di informatica e fondamenti di Java quarta edizione
Questi lucidi provengono dal Capitolo 7 del libro Cay S. Horstmann Concetti di informatica e fondamenti di Java quarta edizione Vettori La classe ArrayList (vettore o lista sequenziale) gestisce oggetti
DettagliRealizzare classi. Cosa abbiamo fatto finora. Realizzare classi. Realizzare classi. Realizzare classi. Realizzare classi
Cosa abbiamo fatto finora Abbiamo visto: tipi di dato base (numeri, booleani e caratteri) oggetti e riferimenti a oggetti di un tipo già definito (String e Rectangle) strutture di controllo (sequenza,
DettagliDefiniamo la prima classe vera. Concetti fondamentali 2. Il corpo del metodo. Definizione di un metodo
Concetti fondamentali 2 Definiamo la prima classe vera Definizione e chiamata di metodi Collaudo di una classe Packages Uso delle variabili istanza Seguire l'esecuzione punto per punto Semantica della
Dettaglisayhello public private protected return public class Greeter { public String sayhello() { String message = Hello, World! ; return message; } }
sayhello public class Greeter { public String sayhello() { String message = Hello, World! ; return message; publicprivate protected return void return; Greeter main main public class GreeterTest { public
DettagliMetodi e variabili istanza
Metodi e variabili istanza Definizione e chiamata di metodi Uso delle variabili istanza Documentazione del codice 29/10/2004 Laboratorio di Programmazione - Luca Tesei 1 Definiamo la prima classe vera
DettagliVariabili e Parametri. Scope, Lifetime Inizializzazione
Variabili e Parametri Scope, Lifetime Inizializzazione Categorie di Variabili Variabili di istanza / campi saldo in BankAccount Variabili locali newsaldo nel metodo deposita() Parametri importo per il
DettagliVariabili e Parametri
Variabili e Parametri Scope, Lifetime Inizializzazione Categorie di Variabili Variabili di istanza / campi saldo in BankAccount Variabili locali newsaldo nel metodo deposita() Parametri importo per il
DettagliEreditarietà (ancora)
Ereditarietà (ancora) Costruttori di sottoclasse Il costruttore di una sottoclasse provvede ad inizializzare la struttura delle istanze della sottoclasse Come abbiamo visto, questa include la parte definita
DettagliEreditarietà (ancora)
Ereditarietà (ancora) Costruttori di sottoclasse Il costruttore di una sottoclasse provvede ad inizializzare la struttura delle istanze della sottoclasse Come abbiamo visto, questa include la parte definita
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
DettagliBank account. private double balance; 11/2/2011
Il Linguaggio Java Ereditarietà Bank account class BankAccount { public BankAccount() { balance = 0; } public void deposit(double amount) { balance += amount; } public void withdraw(double amount) { balance
DettagliProgrammazione Java Avanzata Programmazione Object- Oriented in Java
Programmazione Java Avanzata Programmazione Object- Oriented in Java Ing. Gianluca Caminiti Testi di Riferimento (Java) Cay Horstmann Concetti di informatica e fondamenti di Java Apogeo, 2007 (Versione
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
DettagliCorso di Algoritmi e Strutture dati Programmazione Object- Oriented in Java (Parte I)
Corso di Algoritmi e Strutture dati Programmazione Object- Oriented in Java (Parte I) Ing. Gianluca Caminiti Sommario ( OOP ) Programmazione Object-Oriented Incapsulamento, Ereditarietà, Polimorfismo Richiami
DettagliUsare gli Oggetti. C. Horstmann Fondamenti di programmazione e Java 2 3^ edizione Apogeo
Usare gli Oggetti C. Horstmann Fondamenti di programmazione e Java 2 3^ edizione Apogeo trad. Nicola Fanizzi corso di Programmazione, CdS: Informatica TPS Dip. di Informatica, Università degli studi di
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
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
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
DettagliEreditarietà. Una classe, detta superclasse, può essere specializzata definendo una sottoclasse che ne contenga casi particolari.
Ereditarietà Per definire stato e comportamento di nuovi oggetti, è utile avere una base da cui partire In particolare, un nuovo oggetto potrebbe essere un caso particolare di una tipologia di oggetti
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
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
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
Dettaglipublic BankAccount() { balance = 0; } public BankAccount(double initialbalance) { balance = initialbalance; }
Il Linguaggio Java Le interfacce La classe BankAccount public class BankAccount { public BankAccount() { balance = 0; public BankAccount(double initialbalance) { balance = initialbalance; public void deposit(double
DettagliINTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica
Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione
DettagliINTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - Programma
Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione
DettagliClassi 15/12/2010. Astrazione, astrazione astrazione. Astrazione, astrazione astrazione. Astrazione, astrazione astrazione
Classi Introduzione al progetto di classi Metodi Costruttori Variabili di istanza (campi) Documentazione e commenti Astrazione, astrazione astrazione Astrazione, astrazione astrazione Anni 60/70: programmi
DettagliProgrammazione Java Struttura di una classe, Costruttore, Riferimento this
Programmazione Java Struttura di una classe, Costruttore, Riferimento this Davide Di Ruscio Dipartimento di Informatica Università degli Studi dell Aquila diruscio@di.univaq.it. Sommario 2 2» Struttura
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
DettagliQuesti lucidi provengono dal capitolo 2 di:
Questi lucidi provengono dal capitolo 2 di: Cay S. Horstmann Concetti di informatica e fondamenti di Java quarta edizione Oggetti e classi Gli oggetti sono entità di un programma che si possono manipolare
DettagliLaboratorio di Programmazione Lezione 4. Cristian Del Fabbro
Laboratorio di Programmazione Lezione 4 Cristian Del Fabbro Prossima lezione Mercoledì 25 novembre ore 8:30-11:00 Classe Una classe descrive degli oggetti tramite: Proprietà/variabili/campi (dati/caratteristiche,
DettagliConcetti principali Ereditarietà e (overriding) di metodi. Ereditarietà e costruttori Livelli di accesso protected e package La classe Object
Ereditarietà Concetti principali Ereditarietà e (overriding) di metodi Dynamic dispatch e polimorfismo Ereditarietà e costruttori Livelli di accesso protected e package La classe Object metodi tostring,
DettagliAutore: Prof. Agostino Sorbara ITIS "M. M. Milano" Polistena (RC)
con questo nome si indica in genere un pezzo di programma, dotato di una propria identità: un modulo, ad esempio, potrebbe essere l insieme di alcune funzioni C, o Pascal, che risiedono in un unico file
DettagliGli oggetti. Ogni oggetto ha un interfaccia e ogni oggetto ha un tipo. Incapsulamento. Oggetti. Contatore. Invio di Messaggi
Gli oggetti Linguaggi di Programmazione: Paradigmi di Programmazione (Sperimentazioni) Matteo Baldoni Dipartimento di Informatica Universita` degli Studi di Torino C.so Svizzera, 185 I-149 Torino Ogni
DettagliIntroduzione Programmazione Java
Introduzione Programmazione Java Paolo Tomeo paolo.tomeo@poliba.it Regole basilari Java è case sensitive quindi prestare attenzione alle maiuscole Il commento si inserisce con // all'inizio della linea
DettagliLa programmazione ad oggetti (OOP)
Oggetti e Classi (CAP 10) Alberto Garfagnini, Marco Mazzocco Università degli studi di Padova 30 Novembre 2011 La programmazione ad oggetti (OOP) È un approccio concettuale alla programmazione (indipendente
DettagliMetodi. Un metodo è una porzione di codice a cui si associa un nome. Un istruzione eseguita da un metodo può essere:
Metodi Un metodo è una porzione di codice a cui si associa un nome. Un istruzione eseguita da un metodo può essere: invocazione: esecuzione di un metodo assegnamento: cambia lo stato di un campo ripetizione:
DettagliArray. In Java un array è un oggetto senza metodi, con attributo pubblico length che memorizza la dimensione dell array
Array Una matrice (array) è un insieme ordinato e omogeneo di dati: è una variabile che contiene uno o più valori in sequenza ordinata. Questi valori si chiamano "elementi" e devono avere lo stesso tipo
DettagliOggetti. Definizioni di Classi II
Programmazione a Oggetti Definizioni di Classi II Sommario Costruzioni di oggetti Campi e metodi di classe Overloading Istanziazione di oggetti Costruzione di un oggetto Processo complesso che comprende
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
DettagliI Metodi. Fondamenti di Informatica A-K
I Metodi Fondamenti di Informatica A-K Esercitazione 3 Introduzione al calcolatore e Java Linguaggio Java, basi e controllo del flusso I metodi: concetti di base Stringhe ed array Classi e oggetti, costruttori,
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
DettagliEsercizio 6 Realizzare una classe astratta per le Figure piane e due sottoclassi, la sottoclasse Quadrato e la sottoclasse Rettangolo.
Esercizio 6 Realizzare una classe astratta per le Figure piane e due sottoclassi, la sottoclasse Quadrato e la sottoclasse Rettangolo. public abstract class FiguraPiana2{ private double base; public FiguraPiana2(double
DettagliJava. Java: compilatore e interprete. Programma Java. Java Virtual Machine. Token. Alfabeto
Java Java: compilatore e interprete Il linguaggio Java è un linguaggio di programmazione ad alto livello - algoritmo: astrazione della realtà - linguaggio di programmazione: astrazione del processore -
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
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
DettagliCorso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona
di Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona su Sommario di su di di di su Astrazione sugli oggetti di su Il concetto di classe Classe: realizza l astrazione
DettagliLezione 5 Namespace e JavaDoc
Lezione 5 Namespace e JavaDoc Vittorio Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Organizzazione della lezione Il namespace di Java: i package
DettagliEreditarietà. 9/12/2004 Laboratorio di Programmazione - Luca Tesei 1
Ereditarietà 9/12/2004 Laboratorio di Programmazione - Luca Tesei 1 Ereditarietà È un meccanismo per potenziare classi esistenti e funzionanti Quando vogliamo implementare una nuova classe ed è già disponibile
DettagliIntroduzione a Java. Giovanni Pardini. Dipartimento di Informatica Università di Pisa. 2 Java. Sommario. Esercizio: BankAccount
Introduzione a Java 2 Giovanni Pardini pardinig@di.unipi.it Dipartimento di Informatica Università di Pisa 6 dicembre 2009 1 2 3 4 5 1 Classi e variabili statiche 2 3 Classi e variabili statiche 4 5 Vogliamo
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
DettagliLinguaggi di Programmazione II Matricole con le due ultime cifre dispari
Cognome e Nome: Numero di Matricola: Spazio riservato alla correzione 1 2 3 4 5 6 totale /5 /10 /10 /30 /25 /20 /100 Non usare altri fogli, usare solo lo spazio sottostante. Fogli differenti da questo
DettagliCatia Trubiani. Laboratorio di Ingegneria del Software a.a
Università degli Studi dell Aquila Laboratorio di Ingegneria del Software a.a. 2013-2014 Catia Trubiani Dipartimento di Ingegneria e Scienze dell'informazione e Matematica (DISIM) - Università degli Studi
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
DettagliI costruttori. Il costruttore standard. Esempio di valori di default. Alterare il costruttore standard
I costruttori Servono a inizializzare i valori dei campi degli oggetti. Vengono invocati automaticamente dopo che l oggetto è stato creato. Il costruttore standard Questo tipo di costruzione mette dei
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 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 ad oggetti
DAIS Univ. Ca' Foscari Venezia Programmazione ad oggetti Samuel Rota Bulò Ereditarietà E' un meccanismo per estendere le funzionalità di una classe con nuovi campi e nuovi metodi Chiamiamo superclasse:
DettagliJava. Java : compilatore e interprete. Programma Java. Java Virtual Machine. Il linguaggio Java è un linguaggio di programmazione ad alto livello
Java Il linguaggio Java è un linguaggio di programmazione ad alto livello algoritmo: astrazione della realtà linguaggio di programmazione: astrazione del processore variabile e tipo: astrazione della locazione
DettagliJava. Java : compilatore e interprete. Programma Java. Java Virtual Machine. Token. Alfabeto
Java Il linguaggio Java è un linguaggio di programmazione ad alto livello algoritmo: astrazione della realtà linguaggio di programmazione: astrazione del processore variabile e tipo: astrazione della locazione
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
DettagliTIPI PRIMITIVI: LIMITI
TIPI PRIMITIVI: LIMITI I tipi primitivi sono i "mattoni elementari" del linguaggio In varie situazioni può però essere necessario trattare i tipi primitivi come oggetti quando una funzione pretende come
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.
DettagliScelte. Costrutto condizionale. Il costrutto if. Il costrutto if. Rappresentazione con diagramma a blocchi. Il costrutto if
Scelte Costrutto condizionale Scelte, blocchi Fino ad ora il corpo dei metodi che abbiamo scritto aveva solo un modo di essere eseguito: in sequenza dalla prima istruzione all ultima In applicazioni non
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
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
DettagliIl Linguaggio Java. La superclasse universale Object
Il Linguaggio Java La superclasse universale Object La classe Object La classe Object è la superclasse, diretta o indiretta, di ogni oggetto inclusi gli array La classe Object definisce lo stato ed il
DettagliProgrammazione ad oggetti
Programmazione ad oggetti Tipi di dati Tipo = insieme di valori + insieme di operazioni Es. int: valori:, -2, -1, 0, 1, 2, operazioni:: +,-,*,/,
Dettaglioggetti: Cenni generali Programmazione ad Ingegneria Informatica e dell'informazione Michelangelo Diligenti
Programmazione ad oggetti: Cenni generali Michelangelo Diligenti Ingegneria Informatica e dell'informazione diligmic@dii.unisi.it Argomenti Programmazione ad oggetti Motivazioni Classi Metodi e membri
DettagliOOP in C++ ha membro (dati membro) e funzioni membro In Java i dati membro sono chiamati attributi e le funzioni membro metodi
OOP in C++ Classi e Oggetti Una classe èuntipochehavariabili ha membro (dati membro) e funzioni membro In Java i dati membro sono chiamati attributi e le funzioni membro metodi Una variabile ab di un tipo
DettagliProgrammazione a oggetti
Programmazione a oggetti Quanti oggetti, tra di loro parlando, fanno programmi. Pilu Crescenzi piluc@dsi.unifi.it Università di Firenze Programmazione a oggetti p.1/32 Cosa è un oggetto Una scatola software
DettagliI L IN I GU G AGG G I G O
JAVA IL LINGUAGGIO Tipi e variabili Ogni valore nel linguaggio ha un tipo Ogni variabile deve essere dichiarata ed associata ad un tipo: String greeting = "Hello, World!"; PrintStream printer = System.out;
DettagliUn tipo di dato astratto (ADT) definisce una categoria concettuale con le sue proprietà: una definizione di tipo
TIPI DI DATO ASTRATTO Un tipo di dato astratto (ADT) definisce una categoria concettuale con le sue proprietà: una definizione di tipo implica un dominio, D un insieme di operazioni ammissibili su oggetti
DettagliMarco Faella Classi interne, locali ed anonime
Marco Faella Classi interne, locali ed anonime 6 Lezione n. Parole chiave: Java Corso di Laurea: Informatica Insegnamento: Linguaggi di Programmazione II Email Docente: faella.didattica@gmail.com A.A.
DettagliOggetti Composti (1) Oggetti Composti (2)
Oggetti Composti () Negli esempi che abbiamo visto finora gli attributi delle classi erano variabili di tipo primitivo E però possibile definire come attributi dei riferimenti ad oggetti di qualche classe
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,
DettagliUniversità degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso
Obiettivi Di seguito vengono riportate una serie di domande che possono essere poste durante la prova formale del corso. Le seguenti domande non sono da ritenersi esaustive ma esemplificative. 1. Architettura
DettagliLa programmazione: tradizionale vs Orientata agli Oggetti (OOP)
La programmazione: tradizionale vs Orientata agli Oggetti (OOP) In generale, nella soluzione di un problema si individuano dati e funzionalità (azioni) potendola implementare, a livello più semplice, in
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
DettagliFondamenti di Informatica T-1
Fondamenti di Informatica T-1 Classi e Oggetti Tutor: Allegra De Filippo allegra.defilippo@unibo.it a.a. 2016/2017 Fondamenti di Informatica T-1 Allegra De Filippo 1 / 19 CLASSE: definizione Costrutto
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
DettagliDefinizione di classi
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
DettagliInformatica Ereditarietà Java. Ereditarietà
Ereditarietà L'ereditarietà consente allo sviluppatore di riutilizzare il codice già scritto creando sottoclassi a partire da classi già definite. La sottoclasse eredita tutti gli attributi e tutti i metodi
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
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
DettagliModulo 2: Strutture fondamentali della programmazione Java
Modulo 2: Strutture fondamentali della programmazione Java Argomenti Trattati: Un semplice programma Java: Presentazione di un primo Esempio; Introduzione alla struttura; Compilazione ed esecuzione. Argomenti
DettagliEsercitazione n 2. Obiettivi
Esercitazione n 2 Obiettivi Progettazione di una applicazione Java Utilizzo di classi come schemi Utilizzo di costruttori Utilizzo di stringhe Uguaglianza tra oggetti Utilizzo di classi come componenti
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
DettagliIngegneria del Software
Ingegneria del Software Java Classi Dichiarazione di Classi [Doc comment] [Modifiers] class ClassName [ extends SuperClassName] [ implements InterfaceName [, InterfaceName]...] {ClassBody Doc comment commento
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
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),
DettagliProgrammazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo
Programmazione Orientata agli Oggetti Emilio Di Giacomo e Walter Didimo Una metafora dal mondo reale la fabbrica di giocattoli progettisti Un semplice giocattolo Impara i suoni Dall idea al progetto Toy
Dettagli