La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Introduzione alle Classi e agli Oggetti in Java 1.

Presentazioni simili


Presentazione sul tema: "Introduzione alle Classi e agli Oggetti in Java 1."— Transcript della presentazione:

1 Introduzione alle Classi e agli Oggetti in Java 1

2 Paradigmi di Programmazione 2 Esistono diversi approcci alla programmazione, chiamati paradigmi di programmazione programmazione imperativa: un programma specifica le azioni che devono essere eseguite in sequenza per calcolare i risultati a partire dai dati ƒ programmazione funzionale: un programma è la definizione di una funzione, parametrica rispetto ai dati, che calcola i risultati ƒ programmazione logica: un programma è la descrizione delle proprietà che devono essere verificate dai risultati sulla base delle proprietà verificate dai dati programmazione object-oriented (OOP): si definiscono oggetti software in grado di interagire gli uni con gli altri attraverso lo scambio di messaggi

3 Programmazione Object Oriented 3 La programmazione ad oggetti rappresenta un modo diverso di pensare alla risoluzione dei problemi: anziché modellare il problema adattandolo alla logica del calcolatore infatti, l’approccio orientato agli oggetti adatta il calcolatore al problema Il problema da risolvere viene analizzato individuando delle entità indipendenti che sono in relazione con le altre. Queste entità non vengono scelte perché facilmente traducibili nella logica di programmazione ma in quanto esistenti nel problema in esame e caratterizzate da vincoli che le isolano o le evidenziano dal contesto del problema stesso Le entità vengono rappresentate come oggetti del programma: lo scopo è di ottenere una corrispondenza biunivoca tra entità del problema e oggetti del programma. I progettisti possono quindi concentrarsi sui dati che stanno alla base del problema anziché sulle funzionalità del programma

4 Programmazione Object Oriented 4 Problema Entità 1Entità 2Entità n … Oggetto 1 Oggetto 2 Oggetto n

5 Classi e Oggetti nella Realtà 5 Le classi costituiscono un insieme di oggetti con le stesse proprietà e i medesimi comportamenti, tranne per i valori delle proprietà Esempio: La classe Auto è costituita da tutte le automobili : Un oggetto della classe Auto è una certa automobile. Per esempio una Audi A4: Classe Auto Oggetto Audi A4

6 Oggetto reale e Oggetto software 6 Ciascun oggetto della realtà è: ƒ identificabile con un nome ƒ ha caratteristiche (proprietà) ben precise ƒ svolge funzioni specifiche ‰ Un oggetto software non è quindi altro che: un’ adeguata rappresentazione virtuale, nel calcolatore, di un oggetto della realtà, sia esso concreto oppure astratto un costrutto che incapsula uno stato e un comportamento. Gli oggetti vi permettono di modellare il software in termini sia concretti che astratti. Più precisamente, un oggetto risulta essere l’istanza di una classe, un concetto che spiegheremo tra poco quindi in analogia al mondo reale, anche il software OO che può essere considerato un insieme di oggetti. Qualsiasi entità viene intesa come un oggetto, a iniziare dai tipi base come gli interi, fino alle più complesse istanze di classe

7 Linguaggio Java 7 I linguaggi di programmazione Object Oriented come Java forniscono astrazioni che consentono di rappresentare direttamente nel dominio della soluzione gli elementi che compaiono nel dominio del problema Il dominio è l’area di validità di un problema: l’insieme dei concetti che rappresentano gli aspetti importanti del problema che state cercando di risolvere Il paradigma di programmazione Object Oriented focalizza l’attenzione verso I dati. L’applicazione è suddivisa in un insieme di Oggetti in grado di interagire tra loro Un programma Java è essenzialmente un insieme di classi, non esistono funzioni definite (come in C) a livello esterno, né variabili globali esterne e anche il main è definito dentro a una classe

8 Oggetti Software 8 Un oggetto software ha: ƒ un nome — che permette di referenziarlo con una identificazione univoca ƒ uno stato — un insieme di proprietà che lo caratterizzano ƒ un comportamento — un insieme di operazioni che sa eseguire si può richiedere a un oggetto software di eseguire una operazione mediante l’invio di un messaggio l’uso di un oggetto software è descritto dalla sua interfaccia

9 Cos’è una Classe? 9 Una classe definisce gli attributi e i comportamenti che distinguono un oggetto di un certo tipo Gli attributi costituiscono le caratteristiche esteriori di una classe: per esempio, l’altezza e il colore dei capelli sono gli attributi di un uomo Un attributo di un oggetto può essere un collegamento diretto ad alcune sue variabili interne, oppure il valore restituito da un suo metodo Per comportamento si intende l’azione eseguita da un oggetto dopo aver passato un messaggio o in risposta al cambiamento di uno stato Un programma viene realizzato progettando e realizzando il codice sotto forma di classi ossia è costituito da oggetti software (istanze di classi) che interagiscono tra di loro Classe = dati (attributi o proprietà) + metodi

10 Classi in Java 10 Una Classe è una collezione di Oggetti e metodi Una classe in Java definisce un insieme di oggetti con le stesse caratteristiche Il nome del file della Classe Java (.java) deve avere lo stesso nome della Classe Per esempio: la classe Studente: insieme degli oggetti Studente La classe Auto: insieme degli oggetti Auto La classe Telefono: insieme degli oggetti Telefono

11 Classi e Oggetti in Java 11 Esclusi i tipi primitivi (boolean, char, byte, short, int, long, float, double), in Java esistono solo: classi – componenti software che possono avere i loro dati e le loro funzioni – vengono usate come “struttura” per costruire oggetti oggetti – entità dinamiche costruite al momento del bisogno secondo la definizione di una classe che ne descrive le proprietà

12 Oggetti e Metodi 12 Gli Oggetti sono elementi di una classe con uguali caratteristiche Ogni Metodo è un insieme di istruzioni che una classe o un oggetto rendono disponibili ad altre classi e/o oggetti, affinché possa essere eseguito su richiesta Non occorre preoccuparsi della distruzione degli oggetti: Java ha un garbage collector Esempio: oggetto Semaforo Dati: ‒ Tecnologie ‒ Colori ‒ Anno Produzione ‒ ecc. Metodi: ‒ Accendi ‒ Spegni ‒ Diventa Verde ‒ ecc.

13 Come definire le Classi in Java 13 Definire una classe in java equivale al creare un nuovo tipo di dato (una nuova classe di oggetti) Sintassi: Esempio: class { } class Semaforo {... } La parentesi graffa aperta indica l’inizio del codice della classe La parentesi graffa chiusa indica la fine del codice della classe

14 Classi: definizione degli attributi 14 Gli attributi di una classe definiscono la struttura dello stato degli oggetti che vi appartengono Ogni attributo è definito usando la stessa sintassi usata per la definizione delle variabili locali Convenzioni: scrivere gli attributi in minuscolo (tecnologia e non Tecnologia) Sintassi: ogni attributo è definito usando la stessa sintassi usata per la definizione delle variabili locali Esempio: class Semaforo { String tecnologia; } nomeAttributo;

15 Classi: definizione dei Metodi 15 I metodi di una classe definiscono il comportamento degli oggetti che vi appartengono Sintassi void per i metodi che non ritornano alcun valore String getTecnologia() { return tecnologia; } String è il tipo di dato che restituisce il metodo etodo String è il tipo di dato che restituisce il metodo ([ ]) { }

16 Classi: il Costruttore 16 Per la creazione degli oggetti si utilizza un metodo particolare che automatizza l’inizializzazione degli oggetti, il Costruttore. Il nome del costruttore deve coincidere con quello della classe In una stessa classe possono essere definiti più Costruttori ma con firme diverse (cioè i parametri formali devono differire nel tipo e/o nel numero). Se non viene specificato nemmeno un Costruttore, per default si ha quello senza argomenti. //Costruttore senza parametri public Semaforo() {... } //Costruttore con un parametro public Semaforo(String tecnologieSemaforo) { tecnologia = tecnologieSemaforo; }

17 Dichiarazioni delle Classi 17 La dichiarazione di classe introduce un nuovo tipo di dato (la classe stessa), i cui elementi saranno i suoi oggetti Nella classe vengono dichiarati: i costruttori, che determinano le modalità di creazione degli oggetti; le variabili o attributi di istanza, che costituiscono lo stato degli oggetti; i metodi di istanza, che realizzano le funzionalità degli oggetti. Quando un oggetto viene creato con new, gli viene associata una copia di ogni variabile di istanza

18 Esempio: la Classe Contatore 18 La classe descrive l’entità reale di un Contatore intero. Il valore iniziale del Contatore è zero ed è possibile incrementarlo di una unità tramite un metodo public class Contatore { private int valore; public String tecnologia; public void incrementa () { valore++; } public void reset() { valore=0; } public int getValore() { return valore; } public Contatore(){ valore=0; } Attributi Metodi metodo costruttore: ha lo stesso nome della classe. Usato per creare nuovi oggetti

19 Esempio: la Classe Contatore 19 La classe descrive l’entità reale di un Contatore intero. Il valore iniziale del Contatore è zero ed è possibile incrementarlo di una unità tramite un metodo public class Contatore { private int valore; public String tecnologia; public void incrementa () { valore++; } public void reset() { valore=0; } public int getValore() { return valore=0; } public Contatore() { valore=0; } Attributi Metodi valore è un campo privato: può essere acceduto soltanto dai metodi (operazioni) definiti nella medesima classe (incrementa(), reset(), getValore() )

20 Creazione di Oggetti 20 La creazione di un oggetto è un processo costituito dalle seguenti fasi: Allocare lo spazio di memoria necessario a contenere l'oggetto Inizializzare le variabili di istanza dell'oggetto Per contenere un oggetto la quantità di memoria necessaria è determinata soltanto dalla dichiarazione della classe (precisamente, dal numero e dal tipo delle variabili di istanza) Lo spazio necessario viene allocato in una zona di memoria chiamato heap.

21 Creazione di Oggetti 21 Per creare un oggetto: prima si definisce un riferimento, il cui tipo è il nome della classe che fa da modello poi si crea dinamicamente l’oggetto tramite l’operatore new Una volta creato un oggetto si possono invocare i metodi che sono stati definiti nella classe di appartenenza Esempio: Contatore counter; // dichiarazione oggetto, riferimento counter = new Contatore(); // creazione oggetto – valore è zero

22 Creazione di Oggetti 22 Per accedere ad un attributo di istanza di un oggetto, si usa la sintassi:. per invocare un metodo, si usa la sintassi. ( ) Contatore counter; // dichiarazione oggetto counter = new Contatore(); // creazione oggetto – valore è zero counter.tecnologia = “Metal - Led”; // accesso attributo tecnologia counter.incrementa(); // invocazione metodo – valore è 1

23 I Programmi in Java 23 Essenzialmente un programma Java è un insieme di classi e oggetti Le classi sono componenti statici ed esistono già all’inizio dell’esecuzione del programma Gli oggetti sono componenti dinamici, e vengono creati dinamicamente al momento del bisogno Un semplice programma Java è costituito da una singola classe, quindi un singolo componente software E’ formata dalla sola parte statica in cui si definisce una singola funzione (statica): il main main è una funzione pubblica che non può avere valore di ritorno (è void), prende come argomento un array di String che possono essere anche non usati. Esempio: public static void main(String args[]) {... }

24 Esempio di un Programma 24 Il nostro esempio è costituito da due classi una di nome Test e definisce il main un’altra di nome Contatore che implementa il tipo Contatore (mostrata in precedenza) public class Test { public static void main(String args[]) { Contatore counter = new Contatore (); //dichiarazione e creazione oggetto counter.incrementa(); //invocazione metodo System.out.println(counter.getValue()); // System.out.println permette la stampa a video // in questo caso stampa il valore di counter } File Test.java


Scaricare ppt "Introduzione alle Classi e agli Oggetti in Java 1."

Presentazioni simili


Annunci Google