Fondamenti di Informatica

Slides:



Advertisements
Presentazioni simili
Programmazione ad oggetti
Advertisements

Introduzione al linguaggio C++
Classi ed Oggetti in JAVA
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità B1 Le basi della programmazione a oggetti.
Oggetti Java.
Costruttori e Distruttori
Recupero debito quarto anno Primo incontro
Classi ed Oggetti in Java (Cenni). Richiami Ruolo delle Classi in Java Oggetti.
LIP: 1 Marzo 2005 Classe Object e Vettori. Partiamo da Lesercizio dellultima esercitazione realizzato tramite array Vedremo come si puo fare in modo piu.
Introduzione al linguaggio C
Fondamenti di Informatica Prof. Cantone
UD 3: “Le Liste” UD 4: “Pile e Code” UD 5: “Alberi e grafi”
Funzioni definite dall’utente
Prof.ssa Chiara Petrioli -- Fondamenti di programmazione, a.a. 2009/2010 Corso di Fondamenti di programmazione a.a. 2009/2010 Prof.ssa Chiara Petrioli.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Introduzione a JAVA Anno Accademico 2009/2010.
1 Corso di Informatica (Programmazione) Lezione 7 (5 novembre 2008) Programmazione in Java: lessico, variabili, tipi primitivi, assegnamento a variabile.
1 Corso di Informatica (Programmazione) Lezione 12 (19 novembre 2008) Programmazione in Java: i metodi statici.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Array Anno Accademico 2009/2010.
1 Corso di Informatica (Programmazione) Lezione 13 (21 novembre 2008) Programmazione in Java: stringhe e array.
1 Lezione XIII Lu 17-Nov-2005 Programmare le classi.
Soluzione Esercizio - Classe Vettore
Lezione 4: Costrutti Condizionali Prof. Raffaele Montella.
Oggetti e dati primitivi
Programmazione Corso di laurea in Informatica
Istruzioni di selezione in Java Programmazione Corso di laurea in Informatica.
Approfondimento delle classi
Java base IV: Java e la programmazione O.O.
Elementi di programmazione ad oggetti a. a. 2009/2010 Corso di Laurea Magistrale in Ingegneria Elettronica Docente: Mauro Mazzieri, Dipartimento di Ingegneria.
Componenti fondamentali di un programma Java
I Metodi in Java Il termine "metodo" è sinonimo di "azione". Quindi, affinché un programma esegua qualche istruzione, deve contenere metodi.
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
Prof.ssa Chiara Petrioli -- Fondamenti di programmazione, a.a. 2009/2010 Corso di Fondamenti di programmazione a.a. 2009/2010 Prof.ssa Chiara Petrioli.
Enumerazioni e Classi 1. Enumerazioni Permettono di definire nuovi tipi che consistono in un insieme di valori costanti (ognuno con un nome) – Migliorano.
Lo sviluppo top down Le funzioni
1 Lucidi delle esercitazioni di Sistemi di Elaborazione in Rete Università degli Studi della Calabria Corso di Laurea in Ingegneria Gestionale A.A. 2003/2004.
Fopndamenti di programmazione. 2 La classe String Una stringa è una sequenza di caratteri La classe String è utilizzata per memorizzare caratteri La classe.
Fondamenti di Programmazione Prof.ssa Elisa Tiezzi
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA FINALE DEL 21 MAGGIO 2007 NOME: COGNOME: ________________________________________________________________________________.
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
Appunti di Java (J2SDK 1.4.2, JDK 1.6.0) prof. Antonella Schiavon settembre 2009.
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
1 FONDAMENTI DI INFORMATICA II Ingegneria Gestionale a.a ° Ciclo Approfondimenti sulle Classi.
Le variabili in Java Nella programmazione tradizionale, una variabile è una porzione di memoria in cui è immagazzinato un certo tipo di dato. Per esempio.
JAVA Per iniziare. Verificare installazione javac –version java –version Cercare i files e sistemare eventualmente il path.
CORSO DI PROGRAMMAZIONE II Lezione 22
Programmazione ad oggetti
Incapsulamento e information hiding
Introduzione a Javascript
Ereditarieta’. Contenuti Introduciamo un meccanismo fondamentale di Java: l’ereditarieta’ Permette di estendere classi gia’ definite (ovvero di definire.
Esercitazione su Vector. Permette di definire collezioni di dati generiche, che sono in grado di memorizzare elementi di ogni sottotipo di Object Definito.
Università di Torino – Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a prof. Viviana Bono Blocco 7 – Array.
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
Fondamenti di Informatica II Ingegneria Informatica (A-I) Prof. M.T. PAZIENZA a.a – 3° ciclo.
Ugo de'Liguoro - Informatica 2 a.a. 03/04 Lez. 7 Tipi di dato e strutture dati Specifica e realizzazione di strutture informative come classi.
1 Eccezioni in Java. 2 Ricordiamo che 4 una procedura può terminare –normalmente, ritornando un risultato –in modo eccezionale ci possono essere diverse.
1 Il linguaggio C Precisazioni sull’esperienza in laboratorio.
Programmazione in Java. Classi I programmi in Java consistono di classi. Le classi consentono di definire: collezioni di procedure (metodi statici) tipi.
Cose nuove di Java (prima a chiacchiera, poi formalmente)
Sommario Oggetti immutabili e non Tipi Primitivi: String, Arrays.
Progettare una classe 21 Febbraio La classe BankAccount Vogliamo realizzare una classe i cui oggetti sono dei semplici conti bancari. * Identifichiamo.
LIP: 11 Maggio 2007 Classi Astratte. Cos’e’ una Classe Astratta una classe astratta e’ un particolare tipo di classe permette di fornire una implementazione.
Esercitazione del 9 marzo 2007 Ereditarieta’. Richiami Definire sottoclassi (ereditarieta’) Overriding Specificatori di accesso (private, protected) Principio.
Introduzione a Java. Java Linguaggio Object-Oriented La maggior parte dei dati manipolati dai programmi e’ contenuta in oggetti La principale forma di.
Fondamenti di informatica T-A Esercitazione 3 : Classi, metodi, visibilità, metodi statici AA 2012/2013 Tutor : Domenico Di Carlo.
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
Corso di Algoritmi e Strutture Dati con Laboratorio Richiami di Java – parte II.
30/10/01Array 1  Un array e’ una struttura dati che contiene piu’ valori del medesimo tipo.  La lunghezza di un array e’ stabilita quando l’array viene.
Lezione 2 : Basi del linguaggio Variabili. Come visto nella lezione 1 le classi registrano il proprio stato nelle variabili  int cadenza = 0;  int velocita.
Introduzione alle Classi e agli Oggetti in Java 1.
Transcript della presentazione:

Fondamenti di Informatica MODULO LINGUAGGIO JAVA UNITA’ DIDATTICA 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002

PREREQUISITI Conoscenze di programmazione imperativa acquisite nella classe III nel corso di programmazione in C++ o altro linguaggio imperativo UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002

Alla fine dell’u.d. lo studente deve essere in grado di: Competenze Alla fine dell’u.d. lo studente deve essere in grado di: Definire le classi con attributi e metodi Applicare i principi della programmazione ad oggetti usando il linguaggio Java UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002

Passaggio di parametri Metodo costruttore CONTENUTI Gli oggetti Le classi Metodi e attributi Passaggio di parametri Metodo costruttore Creazione ed uso degli oggetti UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002

Esercitazioni in laboratorio METODOLOGIE Lezione frontale Lezione dialogata Esercitazioni in laboratorio UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002

Presentazioni multimediali Computer STRUMENTI Libro di testo Appunti Presentazioni multimediali Computer UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002

VERIFICA e VALUTAZIONE - test di verifica (a risposta multipla e risposta libera); - esercitazioni in laboratorio. Valutazione sarà effettuata una valutazione sommativa: mostrare di aver acquisito le nozioni di base; mostrare di aver maturato le competenze per la logica della programmazione ad oggetti. UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002

4 h esercitazioni in laboratorio 2 h verifica TEMPI 2 settimane (12 ore): 4 h lezione frontale 4 h esercitazioni in laboratorio 2 h verifica 2 h chiarimenti e potenziamento UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002

Gli oggetti La struttura di un oggetto è descritta attraverso attributi e metodi attributi descrivono le caratteristiche, le proprietà statiche dell’oggetto metodi descrivono i comportamenti, le proprietà dinamiche dell’oggetto ES. Considerando una motocicletta come oggetto, avremo: Attributi : casa_produttrice, modello, cilindrata, colore Metodi : accelera, frena, cambia_marcia UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002

La classe Possono esistere più oggetti che hanno stessi attributi (che possono assumere valori diversi) e stesse funzionalità. In questo caso gli oggetti appartengono alla stessa classe. Per classe s’intende il contenitore logico di uno o più oggetti. Solo dopo aver creato la classe è possibile creare l’oggetto attraverso un’istanza. Quindi a partire da una classe è possibile creare n oggetti, attraverso n istanze. UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002

Esempio di oggetti istanze ES. A partire da motocicletta con i seguenti attributi e metodi Attributi : casa_produttrice, modello, cilindrata, colore Metodi : accelera, frena, cambia_marcia Si possono avere i seguenti oggetti istanza Oggetto1: Yamaha, XT, 600, bianco Oggetto2: Honda, Africa_Twin,, 750, verde Oggetto3:Suzuki, DR, 650, blu UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002

Dichiarazione di una CLASSE La struttura base per poter dichiarare una classe usa la parola chiave class, seguita dal nome della classe e dal suo contenuto racchiuso tra le parentesi graffe { }. All’interno delle parentesi vengono dichiarati gli attributi e i metodi class <nome della classe>{ // attributi // metodi } Attraverso questa dichiarazione viene creato un nuovo tipo di dato. UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002

Livelli di visibilità per le classi Durante la dichiarazione di una classe può essere indicato il livello di visibilità (per stabilire da quale punto del programma è possibile creare istanze della classe): public = la classe può essere usata oltre che all’interno della libreria in cui è stata definita, anche al di fuori abstract = la classe è ancora incompleta e alcuni metodi sono astratti. Può essere usata per creare sottoclassi in cui vengono implementati metodi astratti. Inoltre non può essere istanziata UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002

Livelli di visibilità per le classi final = da questa classe non è possibile creare sottoclassi La parola chiave viene posta prima di class. Se non viene scritto niente la classe può essere usata da tutte le classi. UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002

Dichiarazione degli attributi Gli attributi di una classe (detti anche variabili di istanza, poiché ogni oggetto possiede le proprie variabili) devono essere dichiarati in tal modo: <tipo> <nome della variabile> ES. Alcuni attributi della classe motocicletta possono essere: int cilindrata, anno_immatricolaz; String modello; UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002

Dichiarazione degli attributi Durante la loro dichiarazione gli attributi possono essere anche inizializzati. Se ciò non avviene per default vengono assegnati ai numeri e ai caratteri il valore zero, ai booleani false e agli oggetti null. ES. Alcuni attributi della classe motocicletta possono essere: int cilindrata = 600; int anno_immatricolaz = 1996; String modello = “Dominator”; UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002

Livelli di visibilità per gli attributi Attraverso la visibilità si stabilisce se l’attributo è accessibile da altre classi: public l’attributo è accessibile da qualsiasi altra classe; private l’attributo è visibile solo all’interno della classe, quindi nessun’altra può variarne il valore; protected l’attributo è accessibile dalle classi che appartengono alla stessa libreria e dalle sottoclassi. UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002

Livelli di visibilità per gli attributi Se non viene specificato niente, l’attributo sarà visibile da tutte le classi. Inoltre per definire un attributo costante deve essere dichiarato final ES. public final boolean risposta_affermativa = true; UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002

Dichiarazione dei metodi I metodi servono per implementare le funzioni che una classe può eseguire. La dichiarazione prevede oltre il nome del metodo, il livello di visibilità, il tipo restituito, e uno o più parametri racchiusi tra parentesi tonde( ). Il corpo del metodo è racchiuso tra parentesi graffe {}. <livello di visibilità><tipo restituito> <nome metodo> (<parametri>) { //istruzioni } UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002

Dichiarazione dei metodi Il tipo restituito e il nome del metodo con le parentesi tonde (non necessariamente contenenti la lista dei parametri) sono obbligatori. Nel caso in cui il metodo non restituisce alcun valore viene usata la parola chiave void come tipo restituito. Se il metodo restituisce un valore (quindi non è void) il suo corpo deve contenere l’istruzione return. UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002

Passaggio di parametri Il nome del metodo è sempre seguito da parentesi tonde ( ), in cui possono essere elencati i parametri separati tra loro da virgole. ES. void accelera(int velocità_attuale, int velocità_finale) Il passaggio dei parametri può avvenire per valore o per riferimento. UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002

Passaggio di parametri I parametri vengono passati per valore se sono tipi di dati primitivi; quindi per ogni parametro viene creata una copia che diventa variabile locale all’interno del metodo. Se sono invece degli oggetti o degli array vengono passati per riferimento, quindi le operazioni fatte su di essi hanno effetto sugli oggetti originali; in quanto viene creata una copia del riferimento e non dell’oggetto e le modifiche fatte all’interno del metodo modificano anche l’oggetto originale. UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002

Esempi di metodi con passaggio di parametri ES_1. Si consideri un metodo che calcoli la somma di 2 numeri public int somma (int a, int b) { int sum; sum = a+b; return sum; } UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002

Esempi di metodi con passaggio di parametri ES_2. Si consideri un metodo che calcoli il massimo degli elementi di un array costituito da 2 numeri public int max (int a[]) { if (a[0] > a[1]) return a[0] else return a[1]; } UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002

Livelli di visibilità dei metodi Per la visibilità dei metodi valgono le stesse regole poste per gli attributi public il metodo può essere richiamato da qualsiasi altra classe; private il metodo può essere richiamato solo all’interno della classe in cui è stato definito ; protected il metodo è visibile solo dalle sottoclassi. Solitamente i metodi vengono definiti public UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002

Metodo costruttore Il metodo costruttore viene eseguito ogni qualvolta che viene istanziato un oggetto. Solitamente viene usato per le operazioni di inizializzazione. Questo metodo ha sempre lo stesso nome della classe. Esso non deve restituire alcun valore, ma non deve neanche essere dichiarato di tipo void. Solitamente viene dichiarato di tipo public. Per compiere le operazioni di inizializzazione vengono spesso usati i parametri. UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002

Metodo costruttore ES. Costruiamo una classe coppia di numeri interi Class Coppia { int num,succ; public Coppia (int numero) num=numero; succ=num+1; } UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002

Metodo costruttore All’interno del costruttore è possibile usare come nome del parametro, lo stesso dell’attributo. In questo caso sarà usata la parola chiave this (con questo comando l’oggetto riconosce se stesso), che costituisce un riferimento all’oggetto in questione. UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002

Metodo costruttore Esempio della classe Coppia con l’uso del this Class Coppia { int num, succ; public Coppia (int num) this.num=num; succ=this.num+1; } UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002

Metodo costruttore Se una classe viene costruita senza dichiarare il costruttore, in ogni caso viene associato ad essa un costruttore vuoto. In questo caso al momento della creazione di un oggetto della classe non verranno eseguite operazioni. UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002

Metodo costruttore ES. Definiamo una classe Moto senza l’uso del costruttore Class Moto{ int cilindrata; String modello; void inizializza (int c,String m) { cilindrata =c; modello = new String(m) } UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002

Creazione e uso di oggetti Per poter utilizzare le classi è necessario creare e istanziare un oggetto. La dichiarazione dell’oggetto si fa, facendo seguire al nome della classe il nome dell’oggetto, in tal modo: <classe><nome oggetto> Dopo aver fatto ciò è necessario andare ad allocare l’oggetto in memoria attraverso l’operatore new in tal modo: <nome oggetto>= new<costruttore>(<parametri>) L’operatore new restituisce un riferimento ad un’area di memoria in cui viene memorizzato l’oggetto. UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002

Creazione e uso di oggetti ES. Creiamo un oggetto della classe moto Moto MiaMoto; MiaMoto = new Moto(); E’ possibile dichiarare e allocare un oggetto attraverso un’unica riga di comando: ES. Creiamo un oggetto della classe moto Moto MiaMoto = new Moto(); UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002

Allocazione di un oggetto in memoria Nella fase di dichiarazione dell’oggetto viene creata una variabile vuota, un oggetto senza riferimento. Nella fase di allocazione viene inserito nella variabile il riferimento dell’oggetto, che punta ad un’area di memoria contenente i valori degli attributi dell’oggetto. UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002

Esempio import java.io.* ; class Auto { int cilindrata; String modello; Auto (int c, String m) { cilindrata=c; modello = new String (m); } void VisualizzaInfo( ) { System.out.println ("Modello: "+modello); System.out.println ("Cilindrata: "+cilindrata); class Car { public static void main (String arg[ ]) { static Auto fer = new Auto(2000,"Ferrari F-40"); static Auto alf = new Auto(1300,"Alfa 33"); fer.VisualizzaInfo(); alf.VisualizzaInfo();

Accesso agli attributi di un oggetto Per accedere agli attributi di un oggetto si usa l’operatore punto . E viene inserito tra l’oggetto e l’attributo <oggetto>.<attributo> L’attributo deve essere visibile nel contesto in cui è richiamato. UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002

Accesso ai metodi di un oggetto Anche per invocare un metodo viene usato l’operatore punto . E viene inserito tra l’oggetto e l’attributo <oggetto>.<metodo>(<parametri>) Quando viene richiamato un metodo, all’interno di un altro metodo, appartenente alla stessa classe del primo, non è necessario usare questa tecnica, ma può essere direttamente invocato. UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002

Attributi e metodi static Definendo un attributo static si avrà una copia sola di quell’attributo per tutti gli oggetti di quella classe. Solitamente gli attributi non vengono dichiarati static, quindi si ha per ogni oggetto una copia. Un attributo statico, per cui, viene condiviso da tutte le istanze della classe. Es. Un esempio di attributo statico è il pigreco PI, dichiarato nella classe Math, del package java.lang public static final double PI; UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002

Attributi e metodi static I metodi statici vengono richiamati senza dover creare un oggetto di classe, infatti per invocarlo basta utilizzare il nome della classe e non dell’oggetto <nome classe>.<metodo static> Es. Nella classe Math esistono vari metodi, fra cui il metodo random( ) che è un metodo static public static double random( ); UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002

FINE