Oggetti e dati primitivi

Slides:



Advertisements
Presentazioni simili
Programmazione ad oggetti
Advertisements

Introduzione al linguaggio C++
Oggetti Java.
Costruttori e Distruttori
Recupero debito quarto anno Primo incontro
Università di camerino
26/10/2004Laboratorio di Programmazione - Luca Tesei1 Variabili e Oggetti Lo spazio di memoria di Java Le API di Java.
Differenze nei vari linguaggi di Elisa Trifirò e Barbara Tacchino
1 Astrazioni sui dati : Specifica ed Implementazione di Tipi di Dato Astratti in Java.
1 Semantica Operazionale di un frammento di Java: lo stato.
Classi ed Oggetti in Java (Cenni). Richiami Ruolo delle Classi in Java Oggetti.
LIP: 4 Aprile 2008 ECCEZIONI. Eccezioni Come si definiscono eccezioni Come si lanciano Come si gestiscono (gestione esplicita o di default)
Le gerarchie di tipi.
LIP: 1 Marzo 2005 Classe Object e Vettori. Partiamo da Lesercizio dellultima esercitazione realizzato tramite array Vedremo come si puo fare in modo piu.
Fondamenti di Informatica
Anno accademico Array e puntatori in C.
Programmazione Procedurale in Linguaggio C++
Tipi di dato e controllo del flusso Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dellInformazione Università di Siena Via Roma 56 – – SIENA.
Prof.ssa Chiara Petrioli -- Fondamenti di programmazione, a.a. 2009/2010 Corso di Fondamenti di programmazione a.a. 2009/2010 Prof.ssa Chiara Petrioli.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 21 Marzo 2013.
1 Programmazione ad oggetti in Java E.Mumolo, DEEI
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 Laurea in Biotecnologie Informatica (Programmazione) Variabili e tipi primitivi Anno Accademico 2009/2010.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Array Anno Accademico 2009/2010.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
1 Corso di Informatica (Programmazione) Lezione 10 (12 novembre 2008) Programmazione in Java: espressioni booleane e controllo del flusso (selezione)
1 Corso di Informatica (Programmazione) Lezione 13 (21 novembre 2008) Programmazione in Java: stringhe e array.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Le stringhe di caratteri in Java Anno Accademico 2009/2010.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
1 Lezione XIII Lu 17-Nov-2005 Programmare le classi.
Soluzione Esercizio - Classe Vettore
Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 3 1 JAVA e Internet: il World Wide Web Internet: milioni di computer collegati fra di loro attraverso.
Lezione 4: Costrutti Condizionali Prof. Raffaele Montella.
Lezione 2: Programmazione Orientata agli Oggetti
Programmazione Corso di laurea in Informatica
Oggetti e dati primitivi Programmazione Corso di laurea in Informatica.
Istruzioni di selezione in Java Programmazione Corso di laurea in Informatica.
Approfondimento delle classi
CAPITOLO 4 LINGUAGGIO JAVA: COSTRUTTI DI BASE. ALFABETO Java adotta la codifica standard Unicode della società Unicode, Inc. (ftp://ftp.unicode.org) definito.
Java base IV: Java e la programmazione O.O.
JAVA Franco Bombi 8 ottobre FB Introduzione Java è un linguaggio di impiego generale, basato su classi e orientato agli oggetti Java.
CODIFICA Da flow-chart a C++.
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
Tipi di dati elementari
Unità Didattica 3 Linguaggio C
Enumerazioni e Classi 1. Enumerazioni Permettono di definire nuovi tipi che consistono in un insieme di valori costanti (ognuno con un nome) – Migliorano.
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 INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
I metodi F. Bombi Campi e metodi Abbiamo visto che una classe può contenere – Campi – Metodi stato I campi sono utilizzati per memorizzare.
I nomi in Java F. Bombi 18 novembre novembre 2003.
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
Astrazione procedurale ed eccezioni
Le variabili in Java Nella programmazione tradizionale, una variabile è una porzione di memoria in cui è immagazzinato un certo tipo di dato. Per esempio.
Corso di Algoritmi e Strutture Dati con Laboratorio A.A. 2014/15 Lezioni 1-2.
JAVA Per iniziare. Verificare installazione javac –version java –version Cercare i files e sistemare eventualmente il path.
Ereditarieta’. Contenuti Introduciamo un meccanismo fondamentale di Java: l’ereditarieta’ Permette di estendere classi gia’ definite (ovvero di definire.
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.
Programmazione in Java
1 Il linguaggio C Precisazioni sull’esperienza in laboratorio.
Sommario Oggetti immutabili e non Tipi Primitivi: String, Arrays.
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
Corso di Algoritmi e Strutture Dati con Laboratorio Richiami di Java – parte II.
Lezione 2 : Basi del linguaggio Variabili. Come visto nella lezione 1 le classi registrano il proprio stato nelle variabili  int cadenza = 0;  int velocita.
Basi di Java Strutture base di Java. Basi di java ▪Variabili ▪Operatori ▪Condizioni e Cicli ▪Array.
Introduzione alle Classi e agli Oggetti in Java 1.
Transcript della presentazione:

Oggetti e dati primitivi Programmazione Corso di laurea in Informatica

I membri delle classi Le classi contengono 2 tipi di membri, definiti per l’intera classe o per le singole istanze Le variabili o i campi, che rappresentano lo stato della classe o degli oggetti I metodi, che rappresentano il comportamento: codice eseguibile sottoforma di istruzioni Il tipo di un oggetto è definito dalla classe di appartenenza AA 2003/04 © Alberti Programmazione 4. Oggetti e dati primitivi

Esempio Class Point { public int x, y; } La classe Point della libreria awt ha due campi, x e y, che rappresentano le coordinate del punto I campi sono dichiarati public, cioè chiunque acceda alla classe Point può modificarli AA 2003/04 © Alberti Programmazione 4. Oggetti e dati primitivi

La classe predefinita Rectangle La classe Rectangle della libreria awt di Java e i campi d’istanza I campi x e y rappresentano la posizione dell’angolo alto sinistro e i campi width e height rispettivamente l’ampiezza e l’attezza Si noti che l’astrazione operata consiste nel considerare un rettangolo come una collezione di 4 valori numerici Rectangle 20 15 10 5 x y height (x, y) height width width AA 2003/04 © Alberti Programmazione 4. Oggetti e dati primitivi

Creare oggetti Gli oggetti vengono creati mediante uno speciale metodo di istanziazione, detto costruttore L’operatore new seguito dal nome della classe istanzia un nuovo oggetto con valori di default dei campi new Rectangle () Costruisce un rettangolo con i 4 campi al valore 0 o con i valori passati come parametri new Rectangle (5, 10, 15, 20) Costruisce l’oggetto raffigurato prima Esempio TestRettangolo.java AA 2003/04 © Alberti Programmazione 4. Oggetti e dati primitivi

Variabili e oggetti Spesso l’invocazione al costruttore è associata ad una dichiarazione di variabile e ad un operatore di assegnamento sinistra = destra A sinistra del simbolo = è dichiarata una variabile di dato tipo e nome A destra è chiamato il costruttore della classe dichiarata come tipo della variabile che genera un riferimento ad un nuovo oggetto L’operatore = assegna il riferimento all’oggetto creato alla variabile Rectangle rett = new Rectangle (); AA 2003/04 © Alberti Programmazione 4. Oggetti e dati primitivi

Gli oggetti stringhe Per istanziare l’oggetto stringa “Corso di…” Un oggetto è un’istanza di una particolare classe operatore di assegnamento titolo = new String ("Corso di Programmazione"); variabile chiamata al costruttore genera un riferimento da assegnare AA 2003/04 © Alberti Programmazione 4. Oggetti e dati primitivi

Creare oggetti stringhe Per la classe String non è necessario invocare il costruttore new per creare un oggetto stringa corso = “Programmazione"; corso = new String (“Programmazione”); Speciale sintassi che vale solo per questa classe System.out.println (“Prima le cose importanti"); Il riferimento all’oggetto di tipo String creato implicitamente viene passato come parametro al metodo println AA 2003/04 © Alberti Programmazione 4. Oggetti e dati primitivi

Oggetti e i loro riferimenti Gli oggetti creati sono collocati in un’area di memoria detta heap e sono accessibili mediante riferimenti Point altoSinistra = new Point (); Point bassoDestra = new Point(); Le variabili che rappresentano oggetti contengono il loro riferimento tramite cui possiamo accedere ai campi degli oggetti bassoDestra.x = 112; bassoDestra.y = 40; AA 2003/04 © Alberti Programmazione 4. Oggetti e dati primitivi

Variabili Una variabile è un dato identificato da un identificatore, che rappresenta l’indirizzo della cella di memoria in cui il dato è archiviato Una variabile deve essere dichiarata, specificandone l’identificatore e il tipo di informazione che deve contenere tipo del dato identificatore int totale; int contatore, temp, risultato; Più variabili possono essere specificate in un’unica dichiarazione AA 2003/04 © Alberti Programmazione 4. Oggetti e dati primitivi

Variabili Nella dichiarazione può essere già assegnato un valore iniziale alla variabile, mediante l’operatore d’assegnamento = int somma = 0; int base = 32, max = 149; Quando si richiama una variabile se ne usa il valore Esempio PianoKeys.java AA 2003/04 © Alberti Programmazione 4. Oggetti e dati primitivi

Assegnamento Una istruzione di assegnamento modifica il valore di una variabile totale = 55; L’espressione alla destra del simbolo = è valutata e il suo valore viene assegnato alla variabile a sinistra L’eventuale valore precedente di totale è sovrascritto Si possono assegnare solo valori compatibili con il tipo dichiarato Esempio Geometry.java AA 2003/04 © Alberti Programmazione 4. Oggetti e dati primitivi

Variabili riferimento a un oggetto Una variabile può contenere un valore di un tipo primitivo o il riferimento a un oggetto Il nome di una classe può essere usato per dichiarare una variabile di riferimento a un oggetto String titolo; Nessun oggetto viene creato in questa dichiarazione Si dichiara che la variabile di riferimento conterrà l’indirizzo di un oggetto L’oggetto stesso deve essere creato separatemente titolo = new String (“Il manuale di Java”); titolo = “Il manuale di Java”; AA 2003/04 © Alberti Programmazione 4. Oggetti e dati primitivi

Variabili oggetto La dichiarazione di una variabile oggetto Rectangle scatola; non causa la sua inizializzazione, che va effettuata esplicitamente mediante l’operatore new: scatola Rectangle 20 15 10 5 x y height width scatola AA 2003/04 © Alberti Programmazione 4. Oggetti e dati primitivi

Riferimenti a oggetti Più variabili possono fare riferimento allo stesso oggetto Rectangle scatola; scatola = new Rectangle (5,10,15,20); Rectangle contenitore = scatola; Il riferimento descrive la posizione dell’oggetto sullo heap Ora scatola e contenitore si riferiscono allo stesso oggetto Esempio TestRettangolo_2.java AA 2003/04 © Alberti Programmazione 4. Oggetti e dati primitivi

Definiamo una classe Con un unico metodo che stampi un messaggio di saluto quando viene invocato su un oggetto della classe Esempio Saluti.java Il metodo diCiao () si conclude riportando all’ambiente chiamante un valore del tipo dichiarato String con l’istruzione return return espressione; return; AA 2003/04 © Alberti Programmazione 4. Oggetti e dati primitivi

Effettuare un test della classe Va definito un programma che spesso si chiama driver che ha lo scopo di generare oggetti della classe di cui volete fare un collaudo e ne invoca i metodi Valutare i risultati ed eventualmente ridefinire la classe per migliorarla o correggerla Esempio TestSaluti.java AA 2003/04 © Alberti Programmazione 4. Oggetti e dati primitivi

Variabili d’istanza Ciascun oggetto di una classe può possedere una propria copia di un data variabile. Spesso dichiarata private per realizzare la protezione dei dati, mediante incapsulamento Esempio Saluti_2.java Saluti_2 salutatore_di_Andrea; salutatore_di_Andrea = new Saluti_2 (“Andrea”); Saluti_2 Andrea nome AA 2003/04 © Alberti Programmazione 4. Oggetti e dati primitivi

Errore comune Dimenticare l’inizializzazione di variabili oggetto Rectangle mio_rettangolo; * mio_rettangolo.translate (5, 5); Saluti_2 salutaCarlo; * salutaCarlo.diCiao(); Le istruzioni * generano un errore: si applica un metodo a un oggetto che non esiste ancora La dichiarazione serve solo per creare la variabile oggetto, ma non per inizializzarla; L’inizializzazione va effettuata esplicitamente mediante la chimata all’operatore new AA 2003/04 © Alberti Programmazione 4. Oggetti e dati primitivi

Costruttori vs metodi I costruttori non sono metodi I costruttori non possono essere invocati su oggetti esistenti I costruttori non vengono invocati come i metodi mediante l’operatore dot (.) I costruttori vengono invocati solo all’atto della generazione di un oggetto tramite l’operatore new Errore: Saluti_2 salutatore_di_Andrea; * salutatore_di_Andrea.Saluti_2 (“Andrea”); AA 2003/04 © Alberti Programmazione 4. Oggetti e dati primitivi

I campi statici di classe Campi associati alle istanze della classe Contengono informazioni specifiche per ogni oggetto Campi associati alla classe Rappresentano dati condivisibili da tutti gli oggetti della classe, specifici della classe e non degli oggetti Le variabili di classe Esempio: origine è dichiarata come variabile di classe di una data classe, riferimento a un oggetto della classe Point, cioè di tipo Point La variabile origine viene inizializzata a (0, 0) perché 0 è il valore di default per le variabili di tipo numerico. Il campo Point.origine si riferisce all’origine. Anche nella classe System si usa un campo static che è out. Di solito il termine campo o variabile è associato agli oggetti, viene anche detto campo non statico per maggiore chiarezza public static Point origine = new Point(); AA 2003/04 © Alberti Programmazione 4. Oggetti e dati primitivi

Prototipi e segnature La segnatura o firma di un metodo è costituita dal Nome del metodo Numero e tipo degli argomenti Per utilizzare un metodo occorre conoscerne anche il prototipo Segnatura Tipo del valore di ritorno Overloading di metodi, stesso nome diversa segnatura Il compilatore sceglie il metodo in base agli argomenti usati Come il metodo + usato per sommare e concatenare AA 2003/04 © Alberti Programmazione 4. Oggetti e dati primitivi

Esempi di prototipi int compareTo(String str) boolean equals(String str) int length() String toUpperCase() String substring(int offset, int indiceFin) AA 2003/04 © Alberti Programmazione 4. Oggetti e dati primitivi

Identificatori Gli identificatori sono le parole usate dal programmatore Un identificatore è composto da lettere, cifre, il carattere underscore _ e il segno $ Non possono iniziare con una cifra Java è sensibile alle maiuscole, case sensitive Totale e totale sono identificatori diversi AA 2003/04 © Alberti Programmazione 4. Oggetti e dati primitivi

Identificatori - 2 Alcuni identificatori sono definiti da noi (come Manzoni) Altri sono stati definiti da altri programmatori e noi li usiamo (come println) Alcuni identificatori speciali sono detti parole riservate e hanno un significato prestabilito Una parola riservata non può essere ridefinita AA 2003/04 © Alberti Programmazione 4. Oggetti e dati primitivi

Parole riservate Sono gli identificatori predefiniti nel linguaggio: abstract boolean break byte byvalue case cast catch char class const continue default do double else extends false final finally float for future generic goto if implements import inner instanceof int interface long native new null operator outer package private protected public rest return short static super switch synchronized this throw throws transient true try var void volatile while AA 2003/04 © Alberti Programmazione 4. Oggetti e dati primitivi

Costanti Una costante è un identificatore il cui valore non può essere modificato dopo la sua dichiarazione iniziale Il compilatore segnala un errore se si cerca di modificare una costante Si dichiara con il modificatore final final int ALT_MIN = 69; Rendono chiara la semantica dei valori letterali altrimenti non evidenti Rendono il codice modulare, facilitandone il cambiamento Prevengono errori involontari AA 2003/04 © Alberti Programmazione 4. Oggetti e dati primitivi