La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Informatica 2 Lezione 3 Corso di laurea in matematica Informatica 2 Corso di laurea matematica indirizzo matematica per le applicazioni gestionali ed economiche.

Presentazioni simili


Presentazione sul tema: "Informatica 2 Lezione 3 Corso di laurea in matematica Informatica 2 Corso di laurea matematica indirizzo matematica per le applicazioni gestionali ed economiche."— Transcript della presentazione:

1 Informatica 2 Lezione 3 Corso di laurea in matematica Informatica 2 Corso di laurea matematica indirizzo matematica per le applicazioni gestionali ed economiche indirizzo matematica per le applicazioni tecnologiche e dellingegneria Corso di laurea specialistica in matematica e applicazioni indirizzo matematica ibilità dei dati Università di camerino

2 Informatica 2 Lezione 3 Incapsulamento dei dati Nascondere le informazioni fornendo uninterfaccia Gli attributi di un oggetto, che ne rappresentano lo stato, sono nascoste allinterno delloggetto, accessibili solo ai metodi I metodi garantiscono la consistenza dello stato 4 diversi livelli di accesso a metodi e variabili –public : accessibili a chiunque –private : accessibili solo alla classe –protected : accessibili a classe, sottoclassi e pacchetto –senza modificatori: accessibili solo alle classi del pacchetto Consente modularità e flessibilità

3 Informatica 2 Lezione 3 Creare oggetti Gli oggetti vengono creati mediante uno speciale metodo di istanziazione, detto costruttore Loperatore 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 loggetto raffigurato prima Esempio TestRettangolo.java TestRettangolo.java Costruttore della classe Rectangle

4 Informatica 2 Lezione 3 Esempio Classe Rectangle public class Rectangle { private int x1,y1,x2,y2; public Rectangle() { } public Rectangle(int x1,int y1,int x2,int y2){ this.x1=x1; this.y2=y2; this.x2=x2; this.y2=y2; } public int getX1() { return x1; } public void setX1(int x1) { this.x1 = x1; } // i metodi get e set per le altre variabili sono tralasciati per problemi di spazio. public int getArea(){ int area; int base = y2-y1; int altezza = x2-x1; return base * altezza; } public static void main(String[] args) { Rectangle r = new Rectangle(); r.setX1(1); r.setY1(1); r.setX2(5); r.setY2(5); Rectangle r2 = new Rectangle(1,1,4,2); int area =r2.getArea(); System.out.println("area r2 = "+ area + " area r = " + r.getArea());} } area r2 = 6 area r = 16

5 Informatica 2 Lezione 3 Loperatore new Si usa per istanziare nuovi oggetti di una classe È un operatore unario e viene prefisso al proprio argomento: un costruttore della classe new costruttore_classe() costituisce una espressione Produce un valore: un riferimento al nuovo oggetto creato della classe specificata dal costruttore Il riferimento viene generalmente salvato in una variabile mediante assegnamento Rectangle rectangle = new Rectangle(); Rectangle r = new Rectangle(2,2,4,4);

6 Informatica 2 Lezione 3 Variabili e riferimenti Listruzione di assegnamento per memorizzare un riferimento in una variabile 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 Loperatore di assegnamento = assegna il riferimento alloggetto creato alla variabile Rectangle rett = new Rectangle();

7 Informatica 2 Lezione 3 Oggetti e i loro riferimenti Gli oggetti creati sono collocati in unarea 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;

8 Informatica 2 Lezione 3 1 Variabili Una variabile è un dato identificato da un identificatore, che rappresenta lindirizzo della cella di memoria in cui il dato è archiviato Una variabile deve essere dichiarata, specificandone lidentificatore e il tipo di informazione che deve contenere int totale; int contatore, temp, risultato; Più variabili possono essere specificate in ununica dichiarazione tipo del datoidentificatore

9 Informatica 2 Lezione 3 1 Assegnamento Una istruzione di assegnamento modifica il valore di una variabile totale = 55; Si possono assegnare solo valori compatibili con il tipo dichiarato Semantica operazionale: Lespressione alla destra del simbolo = è valutata e il suo valore viene assegnato alla variabile a sinistra Leventuale valore precedente di totale è sovrascritto

10 Informatica 2 Lezione 3 Espressioni Le espressioni sono sequenze di operatori e di operandi secondo le regole sintattiche del linguaggio. Hanno un tipo complessivo determinato dagli operatori e dal tipo degli operandi. Danno luogo, in fase di esecuzione, a un valore. In particolare le espressioni di creazione di oggetti hanno come tipo la classe delloggetto costruito e in fase di esecuzione producono come valore un riferimento a un oggetto della classe specificata dal costruttore.

11 Informatica 2 Lezione 3 Inizializzazione Nella dichiarazione può essere già assegnato un valore iniziale alla variabile, mediante loperatore dassegnamento = int somma = 0; int base = 32, max = 149; Quando si richiama una variabile se ne usa il valore

12 Informatica 2 Lezione 3 Tipo di un dato Il tipo di una variabile specifica: –la classe di valori che questa può assumere e –linsieme delle operazioni che possono essere effettuate su di essa. Ad esempio una variabile x di tipo intero può assumere come valori solo numeri interi su di essa possono essere effettuate soltanto le operazioni consentite per i numeri interi.

13 Informatica 2 Lezione 3 Tipi e astrazioni La nozione di tipo fornisce unastrazione rispetto alla rappresentazione effettiva dei dati. Tutte le variabili sono rappresentate in memoria come sequenze di bit, che possono essere interpretate diversamente in base ai tipi. Il programmatore può utilizzare variabili di tipi differenti, senza necessità di conoscerne leffettiva rappresentazione.

14 Informatica 2 Lezione 3 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à lindirizzo di un oggetto Loggetto stesso deve essere creato separatemente titolo = new String (Il manuale di Java);

15 Informatica 2 Lezione 3 In memoria La dichiarazione di una variabile oggetto Rectangle scatola; non causa la sua inizializzazione, che va effettuata esplicitamente mediante loperatore new : Rectangle x y height width scatola

16 Informatica 2 Lezione 3 Riferimenti a oggetti Il riferimento descrive la posizione delloggetto sullo heap Più variabili possono fare riferimento allo stesso oggetto Rectangle scatola; scatola = new Rectangle (5,10,15,20); Rectangle contenitore = scatola; Ora scatola e contenitore si riferiscono allo stesso oggetto

17 Informatica 2 Lezione 3 import import … costituisce una direttiva per il compilatore e la Java Virtual Machine Largomento della direttiva di importazione import indica che la classe da cercare fa parte di un package o libreria I separatori. indicano le directory in cui cercare –prog.io.ConsoleOutputManager –In ambiente UNIX: prog/io/ConsoleOutputManager.class –In ambiente DOS/Windows: prog\io\ConsoleOutputManager.class

18 Informatica 2 Lezione 3 Esempio import figure.geometriche.piane.Rectangle; import Graph.2d.Draw; class DisegnaFigure { public static void main(String[] args) { // crea rettangolo Rectangle r = new Rectangle(5,5,10,10); Draw penna = new Drow(r); // diegna il rettangolo d.drawFigure(); }

19 Informatica 2 Lezione 3 Errore comune Dimenticare linizializzazione di variabili oggetto Rectangle mio_rettangolo; ->mio_rettangolo.getArea(); 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 creare loggetto; La creazione va effettuata esplicitamente mediante la chimata alloperatore new

20 Informatica 2 Lezione 3 Costruttori vs metodi I costruttori sono metodi speciali I costruttori non possono essere invocati su oggetti esistenti I costruttori non vengono invocati come i metodi mediante loperatore dot (. ) I costruttori vengono invocati solo allatto della generazione di un oggetto tramite loperatore new Errore: Rectangle rect; -> rect.Rectangle(1,1,2,2,);

21 Informatica 2 Lezione 3 1 Concatenazione di stringhe Loperatore di concatenazione di stringhe + viene usato per appendere una stringa ad un altra Il simbolo + è anche usato per loperazione di addizione aritmentica (polimorfismo) –La funzione che viene eseguita dalloperatore + dipende dal tipo di informazione su cui opera –Se entrambi gli operandi sono stringhe, o una è una stringa e laltra è un numero, esegue la concatenazione di stringhe –Se entrambi gli operandi sono numeri, allora li somma Loperatore + viene valutato da sinistra a destra Le parentesi possono essere usate per alterare lordine di esecuzion

22 Informatica 2 Lezione 3 1 Sequenze di escape Alcuni caratteri speciali possono dare luogo ad ambiguità System.out.println (Ti ho detto "Ciao!"); Il compilatore interpreta la seconda occorrenza di " come la fine della stringa letterale Una sequenza di escape è un insieme di caratteri che ne rappresenta uno speciale La sequenza di escape inizia con il carattere backslash \ e indica che il carattere che segue va trattato in modo speciale System.out.println (Ti ho detto \"Ciao\!");

23 Informatica 2 Lezione 3 1 Sequenze di escape Alcune sequenze di escape in Java: Sequenza \b \t \n \r \" \' \\ Significato backspace tabulazione newline ritorno virgolette doppie virgoletta backslash

24 Informatica 2 Lezione 3 1 La classe predefinita String Java mette a disposizione la classe predefinita String per rappresentare stringhe di caratteri Ogni stringa letterale, delimitata dai segni, è un oggetto della classe String –ciao è un oggetto costante di tipo stringa come 10 è una costante di tipo intero

25 Informatica 2 Lezione 3 Gli oggetti stringhe titolo = new String ("Corso di Programmazione"); chiamata al costruttore Per istanziare loggetto stringa "Corso di Prog …" Un oggetto è unistanza di una particolare classe operatore di assegnamento genera un riferimento da assegnare variabile

26 Informatica 2 Lezione 3 Creare oggetti stringhe Per la sola classe String non è necessario invocare il costruttore new per creare un oggetto stringa (confusione tra operatori, che si applicano a tipi primitivi, e metodi che si applicano ad oggetti, tipi utente) corso = Programmazione"; corso = new String (Programmazione); Speciale sintassi che vale solo per questa classe System.out.println (Prima le cose importanti"); Il riferimento alloggetto di tipo String creato implicitamente viene passato come parametro al metodo println

27 Informatica 2 Lezione 3 La classe String La classe String ha diversi metodi per manipolare stringhe Dato un oggetto della classe, possiamo usare loperatore dot per invocare i metodi corso.length() Molti metodi riportano un valore mediante listruzione return –Come un intero o un nuovo oggetto di tipo String

28 Informatica 2 Lezione 3 Metodi per stringhe Tipo di ritornoNome del metodoArgomenti StringtoUpperCase charcharAtint indice StringconcatString con intlength Stringsubstringint da, int a intcompareToString conStr Stringreplacechar v, char n booleanstartWithString prefisso

29 Informatica 2 Lezione 3 Prototipi e segnature La segnatura o firma di un metodo è costituita dal –Nome del metodo –I tipi dei parametri Per utilizzare un metodo occorre conoscerne anche il prototipo –Segnatura –Tipo del valore di ritorno –Se il metodo non produce nulla si dichiara void il tipo del valore prodotto 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

30 Informatica 2 Lezione 3 Esempi di prototipi int compareTo(String) boolean equals(String str) int length() String toUpperCase() String substring(int, int)

31 Informatica 2 Lezione 3 Metodo toLowerCase Produce il riferimento a una nuova stringa costituita dagli stessi caratteri della stringa che esegue il metodo, con le eventuali lettere maiuscole trasformate in minuscole Tipo prodottoNome del metodoArgomenti StringtoLowerCase nessuno String s1 = "CIAO"; String s2 = s1.toLowerCase(); equivalente a: String s2 = CIAO".toLowerCase();

32 Informatica 2 Lezione 3 Nota bene … CIAO parola String parola = CIAO; String nuovaParola = parola.toLowerCase() ciao nuovaParola

33 Informatica 2 Lezione 3 Metodo length Produce un int, cioè un numero intero, uguale alla lunghezza della stringa rappresentata dalloggetto che esegue il metodo. Tipo prodottoNome del metodoArgomenti intlength ciao.length() produce il valore intero 4

34 Informatica 2 Lezione 3 Metodo concat Produce un riferimento alla stringa ottenuta concatenando alla stringa che esegue il metodo la stringa fornita come argomento. Tipo prodottoNome del metodoArgomenti StringconcatString String risposta = Ciao ".concat(nome).concat("!"); String risposta = Ciao ".concat(nome.concat("!"));

35 Informatica 2 Lezione 3 Metodo substring Produce il riferimento a una stringa formata dai caratteri che vanno dalla posizione x fino alla posizione y -1 della stringa che esegue il metodo. Tipo prodottoNome del metodoArgomenti Stringsubstringint, int "distruggere 11 caratteri d è in posizione 0, lultima e in posizione 10 "distruggere".substring(2, 9) restituisce la stringa strugge

36 Informatica 2 Lezione 3 Metodo substring Produce un riferimento a una stringa formata da tutti i caratteri della stringa che esegue il metodo che si trovano tra la posizione specificata nellargomento e la fine della stringa. Tipo prodottoNome del metodoArgomenti Stringsubstringint "distruggere".substring(8) restituisce la stringa ere


Scaricare ppt "Informatica 2 Lezione 3 Corso di laurea in matematica Informatica 2 Corso di laurea matematica indirizzo matematica per le applicazioni gestionali ed economiche."

Presentazioni simili


Annunci Google