Introduzione alle Classi e agli Oggetti in Java 1.

Slides:



Advertisements
Presentazioni simili
Programmazione ad oggetti
Advertisements

© 2007 SEI-Società Editrice Internazionale, Apogeo Unità B1 Le basi della programmazione a oggetti.
Costruttori e Distruttori
Recupero debito quarto anno Primo incontro
Programmazione object oriented in C++
Massa Laura Mela Enrica
1 Astrazioni sui dati : Specifica ed Implementazione di Tipi di Dato Astratti in Java.
Classi ed Oggetti in Java (Cenni). Richiami Ruolo delle Classi in Java Oggetti.
Introduzione al linguaggio C
Fondamenti di Informatica
Fondamenti di Informatica II Ingegneria Informatica / Automatica (A-I) Meccanica Prof. M.T. PAZIENZA a.a – 3° ciclo.
JAVASCRIPT DIFFERENZA TRA JAVASCRIPT E JAVA TAG LO SCRIPT OGGETTI LE CLASSI FUNZIONE GESTORE DI EVENTI ELEMENTI DEL LINGUAGGI è un vero e proprio linguaggio.
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 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.
Overriding.
Approfondimento delle classi
nome: sequenza di caratteri usata per denotare un oggetto
Le classi Definizione di classe Attributi e metodi di una classe Costruttori e distruttori Private e public Funzioni friend Il puntatore this.
Espressioni condizionali
Java base IV: Java e la programmazione O.O.
LA DOCUMENTAZIONE È noto che un buon programma dovrebbe essere ben documentato.. ma lesperienza insegna che quasi mai ciò viene fatto! –non cè tempo, ci.
IL CONCETTO DI PACKAGE Una applicazione è spesso composta di molte classi (eventualmente correlate) Un package è un gruppo di classi che costi- tuiscono.
FUNZIONI... Una funzione permette di dare un nome a una espressione rendendola parametrica float f(){ return * sin(0.75); } float f1(int x) { return.
Introduzione alla modellazione di sistemi interattivi
Elementi di programmazione ad oggetti a. a. 2009/2010 Corso di Laurea Magistrale in Ingegneria Elettronica Docente: Mauro Mazzieri, Dipartimento di Ingegneria.
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: ________________________________________________________________________________.
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
2000 Prentice Hall, Inc. All rights reserved. Attivazione di funzioni La chiamata/attivazione di funzione viene indicata citando il nome della funzione.
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.
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
Programmazione a oggetti
CORSO DI PROGRAMMAZIONE II Lezione 22
Programmazione ad oggetti
Lezione 1 Panoramica sui paradigmi di programmazione
Introduzione a Javascript
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.
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
Programmazione in Java
1 Il linguaggio C Precisazioni sull’esperienza in laboratorio.
Ripasso su Java. Introduzione Per risolvere problemi complessi, i linguaggi di programmazione forniscono costrutti per realizzare nuove funzioni che trasformino.
ALLOCAZIONE STATICA: LIMITI Per quanto sappiamo finora, in C le variabili sono sempre dichiarate staticamente –la loro esistenza deve essere prevista e.
Progettazione di una base di dati Ciclo di vita di un sistema informativo Studio di fattibilità definisce le varie alternative possibili, i relativi costi.
Progettare una classe 21 Febbraio La classe BankAccount Vogliamo realizzare una classe i cui oggetti sono dei semplici conti bancari. * Identifichiamo.
Esercitazione del 9 marzo 2007 Ereditarieta’. Richiami Definire sottoclassi (ereditarieta’) Overriding Specificatori di accesso (private, protected) Principio.
La Programmazione ad Oggetti
1 Java secondo contatto Nel tunnel una luce…. 2 Esercizio - Contatore Definire la classe Contatore con le seguenti caratteristiche:  Il metodo getValore.
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.
La programmazione ad oggetti
13/08/02Input 1 Interagire con il computer Da tastiera Da riga di comando Funzioni di conversione.
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.
1 Metodo I metodi sono uno strumento che i programmatori usano per strutturare i programmi, sia per renderli più facili da capire che per permettere il.
Introduzione all’Ereditarietà Pietro Palladino. Richiami UML Classe: descrizione di un insieme di oggetti software con caratteristiche simili Definisce.
Basi di Java Strutture base di Java. Basi di java ▪Variabili ▪Operatori ▪Condizioni e Cicli ▪Array.
Transcript della presentazione:

Introduzione alle Classi e agli Oggetti in Java 1

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

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

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

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

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

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

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

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

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

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à

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.

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

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;

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 ([ ]) { }

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; }

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

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

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() )

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.

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

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

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[]) {... }

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