Università di camerino

Slides:



Advertisements
Presentazioni simili
Programmazione ad oggetti
Advertisements

Introduzione al linguaggio C++
LINGUAGGIO DI PROGRAMMAZIONE C
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità A2 Java: le basi del linguaggio.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità B1 Le basi della programmazione a oggetti.
Costruttori e Distruttori
Recupero debito quarto anno Primo incontro
Universita di Camerino
Informatica 2 Lezione 4 Corso di laurea in matematica Informatica 2 Dott. Ing. Leonardo Vito Corso di laurea matematica indirizzo matematica per le applicazioni.
1 Astrazioni sui dati : Specifica ed Implementazione di Tipi di Dato Astratti in Java.
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
JAVASCRIPT DIFFERENZA TRA JAVASCRIPT E JAVA TAG LO SCRIPT OGGETTI LE CLASSI FUNZIONE GESTORE DI EVENTI ELEMENTI DEL LINGUAGGI è un vero e proprio linguaggio.
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 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 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 Laurea in Biotecnologie Informatica (Programmazione) Assegnamento di valore a una variabile Anno Accademico 2009/2010.
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.
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
Oggetti e dati primitivi
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
Java base I: Sintassi e tipi di dati
Java base IV: Java e la programmazione O.O.
Programmazione in Java
Programmazione in Java Claudia Raibulet
Elementi di programmazione ad oggetti a. a. 2009/2010 Corso di Laurea Magistrale in Ingegneria Elettronica Docente: Mauro Mazzieri, Dipartimento di Ingegneria.
Elementi di programmazione ad oggetti a. a. 2009/2010 Corso di Laurea Magistrale in Ingegneria Elettronica Docente: Mauro Mazzieri, Dipartimento di Ingegneria.
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.
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 INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
I nomi in Java F. Bombi 18 novembre novembre 2003.
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
Le variabili in Java Nella programmazione tradizionale, una variabile è una porzione di memoria in cui è immagazzinato un certo tipo di dato. Per esempio.
Oggetti in C# Lezione 1 Classi ed istanze Oggetti in C# - Lezione 1.
JAVA Per iniziare. Verificare installazione javac –version java –version Cercare i files e sistemare eventualmente il path.
Variabili e assegnazione
1 Corso di Informatica (Programmazione) Lezione 8 (7 novembre 2008) Programmazione in Java: operatori aritmetici, operatori di assegnamento e cast.
Introduzione a Javascript
Variabili Numeriche –Interi (byte, short, int, long): complemento a 2 –A virgola mobile (float, double): IEEE 745 Alfanumeriche –Carattere (char): Unicode.
Ereditarieta’. Contenuti Introduciamo un meccanismo fondamentale di Java: l’ereditarieta’ Permette di estendere classi gia’ definite (ovvero di definire.
Parte 3 Lo stato: variabili, espressioni ed assegnazioni
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.
Programmazione in Java
1 Il linguaggio C Precisazioni sull’esperienza in laboratorio.
Sommario Oggetti immutabili e non Tipi Primitivi: String, Arrays.
Esercitazione del 9 marzo 2007 Ereditarieta’. Richiami Definire sottoclassi (ereditarieta’) Overriding Specificatori di accesso (private, protected) Principio.
FI - Algoritmi e Programmazione 1 Variabili Consentono di aumentare notevolmente la potenza espressiva. Una variabile è caratterizzata da:  Un nome 
Cloud informatica V anno. Introduzione a PHP Lo scripting PHP PHP è un linguaggio di scripting lato server. Le caratteristiche di un linguaggio di scripting.
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.
Stringhe in Java. Definire una stringa. Definire una stringa in Java Il modo più semplice e diretto per creare un oggetto di tipo String è assegnare alla.
Introduzione alle Classi e agli Oggetti in Java 1.
Transcript della presentazione:

Università di camerino 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 dell’ingegneria Corso di laurea specialistica in matematica e applicazioni indirizzo matematica ibilità dei dati Informatica 2 Lezione 3

Incapsulamento dei dati Nascondere le informazioni fornendo un’interfaccia Gli attributi di un oggetto, che ne rappresentano lo stato, sono nascoste all’interno dell’oggetto, 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à Informatica 2 Lezione 3

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 Costruttore della classe Rectangle Costruttore della classe Rectangle 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; 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 Informatica 2 Lezione 3

L’operatore 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); Informatica 2 Lezione 3

Variabili e riferimenti L’istruzione 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 L’operatore di assegnamento = assegna il riferimento all’oggetto creato alla variabile Rectangle rett = new Rectangle(); Informatica 2 Lezione 3

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; Informatica 2 Lezione 3

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 Informatica 2 Lezione 3

Assegnamento Una istruzione di assegnamento modifica il valore di una variabile totale = 55; Semantica operazionale: 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 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 dell’oggetto costruito e in fase di esecuzione producono come valore un riferimento a un oggetto della classe specificata dal costruttore. Informatica 2 Lezione 3

Inizializzazione 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 Informatica 2 Lezione 3

Tipo di un dato Il tipo di una variabile specifica: la classe di valori che questa può assumere e l’insieme 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. Informatica 2 Lezione 3

Tipi e astrazioni La nozione di tipo fornisce un’astrazione 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 l’effettiva rappresentazione. 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à l’indirizzo di un oggetto L’oggetto stesso deve essere creato separatemente titolo = new String (“Il manuale di Java”); Informatica 2 Lezione 3

In memoria 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 Informatica 2 Lezione 3

Riferimenti a oggetti Il riferimento descrive la posizione dell’oggetto 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 Informatica 2 Lezione 3

import import … costituisce una direttiva per il compilatore e la Java Virtual Machine L’argomento 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 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(); } Informatica 2 Lezione 3

Errore comune Dimenticare l’inizializzazione 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 l’oggetto; La creazione va effettuata esplicitamente mediante la chimata all’operatore new 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 l’operatore dot (.) I costruttori vengono invocati solo all’atto della generazione di un oggetto tramite l’operatore new Errore: Rectangle rect; -> rect.Rectangle(1,1,2,2,); Informatica 2 Lezione 3

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

System.out.println (“Ti ho detto "Ciao“!"); 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\“!"); Informatica 2 Lezione 3

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

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 Informatica 2 Lezione 3

Gli oggetti stringhe Per istanziare l’oggetto stringa "Corso di Prog …" 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 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 all’oggetto di tipo String creato implicitamente viene passato come parametro al metodo println Informatica 2 Lezione 3

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

Metodi per stringhe Tipo di ritorno Nome del metodo Argomenti String toUpperCase char charAt int indice concat String con int length substring int da, int a compareTo String conStr replace char v, char n boolean startWith String prefisso 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 Informatica 2 Lezione 3

Esempi di prototipi int compareTo(String) boolean equals(String str) int length() String toUpperCase() String substring(int, int) 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 prodotto Nome del metodo Argomenti String toLowerCase nessuno String s1 = "CIAO"; String s2 = s1.toLowerCase(); equivalente a: String s2 = “CIAO".toLowerCase(); Informatica 2 Lezione 3

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

Metodo length Produce un int , cioè un numero intero, uguale alla lunghezza della stringa rappresentata dall’oggetto che esegue il metodo. Tipo prodotto Nome del metodo Argomenti int length “ciao”.length() produce il valore intero 4 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 prodotto Nome del metodo Argomenti String concat String risposta = “Ciao ".concat(nome).concat("!"); String risposta = “Ciao ".concat(nome.concat("!")); 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 prodotto Nome del metodo Argomenti String substring int, int "distruggere“ 11 caratteri d è in posizione 0 , l’ultima e in posizione 10 "distruggere".substring(2, 9) restituisce la stringa “strugge” 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 nell’argomento e la fine della stringa. Tipo prodotto Nome del metodo Argomenti String substring int "distruggere".substring(8) restituisce la stringa “ere” Informatica 2 Lezione 3