A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas

Documenti analoghi
Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre Negli esercizi proposti si utilizzano le seguenti classi:

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014

Ingegneria del Software

public double getlato() restituisce la lunghezza del lato del quadrato che esegue il metodo.

Introduzione alla programmazione Object Oriented. Luca Lista

Oggetti e classi. Cos è un oggetto

ISTITUTO STATALE D ISTRUZIONE SUPERIORE FERRARIS - BRUNELLESCHI EMPOLI Anno scolastico 2015/2016

Programmazione Orientata agli Oggetti

public BankAccount() { balance = 0; } public BankAccount(double initialbalance) { balance = initialbalance; }

Definizione di metodi

UML I diagrammi implementativi

Diagrammi di classe e sistemi orientati agli oggetti

Dipartimento di INFORMATICA TC - TTRG. Anno Scolastico Piano di Lavoro Disciplinare. INFORMATICA Articolazione: INFORMATICA Classe IV

Unità Didattica 3 Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore.

Classi. Oggetti e classi. Creazione e inizializzazione di oggetti in C++ Distruzione di oggetti in C++

UML. Il linguaggio UML e ArgoUML. Ingegneria dei sistemi software 2009/ /09/2009

Analisi e progettazione ad oggetti

Esonero del corso di Programmazione a Oggetti

!"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&) !"#$%&&'(%)'*+%",#-%"#.'%&'#/0)-+#12"+3,)4+56#7+#.')8'9

Informatica 3 secondo recupero 13 Settembre 2002

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

Refactoring 5 Sposta Metodo. 5 Sposta Metodo. 5 Sposta Metodo - Codice iniziale

I livelli dei linguaggi. Introduzione alla OOP Object Oriented Programming. La programmazione procedurale separa il calcolo dalla memoria

Uso di metodi statici. Walter Didimo

Allocazione Dinamica della Memoria

Strutturare il codice: sottoprogrammi

Programmazione Orientata agli Oggetti in Linguaggio Java

Eredità e Polimorfismo in Java

La programmazione: tradizionale vs Orientata agli Oggetti (OOP)

Esercitazione n 1. Obiettivi

Strutture Dinamiche. Fondamenti di Informatica

Object Oriented Programming

Corso di Programmazione a oggetti

Excel. I fogli di calcolo Le funzioni base Gli strumenti. 1

Definizione di metodi in Java

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi

15 - Packages. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

INTRODUZIONE INTRODUZIONE JAVA JAVA

VISUAL BASIC FOR APPLICATION

14 - Packages. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Lezione 9 programmazione in Java Classi come contenitori

Programmazione orientata agli oggetti

CLASSI ASTRATTE - ESERCIZIO

Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013

Corso sul linguaggio Java

Pubblico e privato. Per capire il concetto di pubblico e privato è possibile pensare a diversi oggetti del mondo reale. Ad esempio: bancomat.

Dispensa di Informatica III.1

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Programmazione a Oggetti Lezione 10. Ereditarieta

Programmazione procedurale

COMPITO DI LABORATORIO DI PROGRAMMAZIONE Luglio Soluzione degli Esercizi

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori

Gestione delle eccezioni in Java

predefinito in Windows XP

Architettura degli elaboratori Docente:

Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A Esercitazione. Programmazione Object Oriented in Java

Programmazione ad Oggetti

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1

Componenti. Il modello di Protege. Un tool per la creazione e sviluppo di Ontologie e Basi di Conoscenza

Ingegneria del Software 6. Classi e oggetti. Dipartimento di Informatica Università di Pisa A.A. 2014/15

Informatica. Prof. A. Longheu. Introduzione ai Linguaggi Object-Oriented

Fondamenti di Informatica T1 Mappe

Proff. Fabio Ciao e Raffaele Bortone

IL CONCETTO DI FILE. È illecito operare oltre la fine del file.

Prefazione. Capitolo 1 Sistemi di elaborazione 1

Unità Didattica 2 I Linguaggi di Programmazione

SETA Selection Tool del Sistema ARTIST

4 GLI ARRAY E LE STRINGHE

Corso di Informatica

AGGIORNAMENTO SOFTWARE

UML Diagrammi delle classi. UML Diagramma classi 1

In questa lezione. Polimorfismo

XML e Windows Phone. Semplice tutorial per l'utilizzo di documenti e dati XML in un'app per Windows Phone.

Introduciamo l'uso della programmazione ad oggetti in PHP...perchè si può fare!

CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI

Linguaggio C: introduzione

Lezione 3 Progettazione di siti

Introduzione a Classi e Oggetti

La programmazione a oggetti e il C++ (introduzione)

Mini-Corso di Informatica

Modificatori di visibilità

Lettura e scrittura di file di dati input/output

esercizi Esercizi / problemi

PROGRAMMAZIONE EIA/ISO Macchine Utensili CNC

Guida alla Registrazione Utenti

Linguaggi ad oggetti (object oriented) LINGUAGGI DI PROGRAMMAZIONE: PARADIGMI DI PROGRAMMAZIONE. Programmazione ad oggetti

Sviluppo Applicazioni Mobile Lezione 11. Dr. Paolo Casoto, Ph.D

Esame Informatica Generale 13/04/2016 Tema A

20. LA PROGRAMMAZIONE AD OGGETTI

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

Corso di Laurea Ingegneria Informatica Laboratorio di Informatica

Linguaggi di alto livello, compilatori e interpreti

WINDOWS Avviare Windows95. Avviare Windows95 non è un problema: parte. automaticamente all accensione del computer. 2. Barra delle applicazioni

Grafici. 1 Generazione di grafici a partire da un foglio elettronico

ACCESS. Database: archivio elettronico, dotato di un programma di interfaccia che facilita la registrazione e la ricerca dei dati.

Relazioni tra oggetti e classi : Composizione. Relazioni tra oggetti e classi : esempio di Aggregazione. classe contenitore

OOP: L13: Eccezioni e loro trattamento in Java

V. Moriggia Modelli di Base Dati. Modelli di Base Dati. a.a. 2001/

INTRODUZIONE ALLE BASI DATI RELAZIONALI

CORSO DI PROGRAMMAZIONE

Transcript:

Classi e oggetti A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas

Oggetti La programmazione orientata agli oggetti, OOP (Object-Oriented Programming), prende il nome dall elemento su cui si basa, l oggetto.

OOP Vantaggi facilità di lettura e di comprensione del codice rapidità nella manutenzione robustezza riusabilità del codice

Oggetti Gli oggetti rappresentano le entità del problema o della realtà che si vuole automatizzare con l informatica. Un oggetto è in grado di memorizzare le informazioni che riguardano il suo stato È possibile associare a un oggetto un insieme di operazioni che esso può compiere.

Attributi e metodi Gli attributi rappresentano gli elementi che caratterizzano l oggetto, utili per descrivere le sue proprietà e definirne il suo stato. I metodi rappresentano le funzionalità che l oggetto mette a disposizione.

Definizione delle classi La classe è la descrizione astratta degli oggetti attraverso gli attributi e i metodi. Diagramma delle classi <nome classe> <attributo1> <attributo2>... <metodo1> <metodo2>... I simboli utilizzati negli schemi grafici rispettano gli standard del linguaggio UML (Unified Modeling Language)

Istanza Per utilizzare un oggetto occorre crearlo come esemplare della classe, cioè come istanza di una classe. Diagramma degli oggetti auto1 velocità = 60 colore = rosso numero di porte = 5 livello del carburante = ½ posizione della marcia = 3 Ogni classe possiede un particolare metodo predefinito, detto costruttore, che viene attivato quando si crea un oggetto.

Incapsulamento Il termine incapsulamento indica la proprietà degli oggetti di incorporare al loro interno sia gli attributi che i metodi, cioè le caratteristiche e i comportamenti dell oggetto.

Dichiarazione di una classe class NomeClasse { // attributi // metodi }

Dichiarazione di un oggetto dichiarazione di un oggetto: NomeClasse nomeoggetto; creazione dell istanza: nomeoggetto = new NomeClasse();

Dichiarazione di un attributo dichiarazione di un attributo: livellodivisibilità tipo nomeattributo; Esempi: private int x, y, z; public double altezza = 15.76;

Livelli di visibilità public l attributo è accessibile da qualsiasi altra classe private permette di nascondere l attributo all interno dell oggetto protected è visto all esterno solo dalle classi che appartengono alla stessa libreria oppure dalle sottoclassi della classe in cui è stato dichiarato l attributo.

Altre caratteristiche static indica un attributo legato alla classe final se lo si vuole rendere una costante, in modo che possa assumere un unico valore.

Dichiarazione dei metodi livellodivisibilità tiporestituito nomemetodo (parametri) { // variabili // istruzioni }

Esempio Il metodo che esegue la somma di due numeri interi passati come parametri: public int addizione (int a, int b) { int sum; sum = a+b; } return sum;

Valore di ritorno Il tipo del valore di ritorno indica quale sarà il valore restituito al termine dell esecuzione del metodo. Un metodo può anche non restituire alcun valore: parola chiave void. public void setraggio(double r) { raggio = r; }

Istruzione return public int max(int a, int b) { if (a > b) { return a; } else { return b; } }

Parametri In Java, i parametri possono essere passati ai metodi solo per valore. Per quanto riguarda i tipi riferimento, cioè gli array e gli oggetti, viene creata una copia del riferimento e non dell oggetto.

Livelli di visibilità I livelli di visibilità di un metodo: public può essere richiamato da qualunque altra classe private non può essere richiamato esternamente alla classe in cui è dichiarato protected è visibile solo dalle classi che appartengono alla stessa libreria oppure dalle sottoclassi della classe in cui è dichiarato

Creazione di oggetti L allocazione dell oggetto riserva lo spazio per memorizzare gli attributi dell oggetto e viene codificata con l operatore new seguito dal nome della classe. Viene attivato in modo implicito un particolare metodo predefinito, detto costruttore della classe, che consente di creare un oggetto. Cerchio tavolo = new Cerchio();

Creazione di oggetti Creare un istanza della classe Cerchio usando il costruttore e indicando un valore di inizializzazione per l attributo raggio. Cerchio ruota = new Cerchio(0.41);

Utilizzo degli oggetti Accesso agli attributi di un oggetto con l operatore punto: nomeoggetto.attributo Invocazione di un metodo: nomeoggetto.metodo(parametri) In ogni classe è implicitamente presente un oggetto speciale identificato dalla parola chiave this, per indicare l oggetto a cui il costruttore si riferisce.

Information hiding Il termine information hiding indica il mascheramento delle modalità di implementazione di un oggetto, rendendone disponibile all esterno solo le funzionalità. Metodi per leggere e modificare il valore degli attributi: get: leggere il valore di un attributo e restituirlo set: modificare il valore di un attributo.

Esempio class Automobile { private final int POSIZIONE_MAX = 6; private int posmarcia; public Automobile() { posmarcia = 1; } public int getmarcia() { return posmarcia; } public void setmarcia(int m) { if ((m >= 1) && (m <= POSIZIONE_MAX)) { posmarcia = m; } } }

Interfaccia il termine interfaccia riferito alle classi: L interfaccia di una classe indica l elenco dei metodi pubblici, cioè l insieme delle funzionalità utilizzabili dalle istanze della classe. per esempio, l interfaccia della classe Automobile: public Automobile() public int getmarcia() public void setmarcia(int m) I dettagli sulle caratteristiche e la struttura dell oggetto sono nascosti all interno, garantendo l information hiding (mascheramento dell informazione).

Array di oggetti La dichiarazione e l allocazione di un array di oggetti: la dichiarazione di un array di 10 cerchi Cerchio collezione[] = new Cerchio[10]; allocare i singoli oggetti collezione[0] = new Cerchio(0.58); collezione[1] = new Cerchio(4.3);

Ereditarietà L ereditarietà rappresenta la possibilità di creare nuove classi a partire da una classe già esistente (classe base). La nuova classe eredita tutti gli attributi e i metodi della classe base e può essere arricchita con nuovi attributi e nuovi metodi. La classe così ottenuta si chiama classe derivata..

Sottoclasse e superclasse La classe che è stata derivata da un altra usando l ereditarietà prende il nome di sottoclasse. La classe generatrice di una sottoclasse si chiama superclasse o sopraclasse.

Grafo di gerarchia

Classe derivata La nuova classe si differenzia dalla sopraclasse: per estensione: la sottoclasse aggiunge nuovi attributi e metodi per ridefinizione: la sottoclasse ridefinisce i metodi ereditati (overriding del metodo)

Dichiarazione di una sottoclasse class NomeSottoClasse extends NomeSopraClasse {... }

Classe Object Classe da cui vengono derivate tutte le altre

Polimorfismo Il polimorfismo indica la possibilità per i metodi di assumere forme, cioè implementazioni, diverse all interno della gerarchia delle classi. Due tipi di polimorfismo: l overriding, o sovrapposizione dei metodi, l overloading, o sovraccarico dei metodi.

Overriding Overriding: ridefinire, nella classe derivata, un metodo ereditato con lo scopo di modificarne il comportamento. Il nuovo metodo deve avere lo stesso nome e gli stessi parametri del metodo che viene sovrascritto.

Overloading L overloading di un metodo è la possibilità di utilizzare lo stesso nome per compiere operazioni diverse. Solitamente si applica ai metodi della stessa classe che si presentano con lo stesso nome, ma con un numero o un tipo diverso di parametri.

Librerie Le librerie sono un insieme di classi già compilate che possono essere richiamate e usate all interno dei programmi. Java usa il termine package. Esempi: java.applet java.awt java.io java.lang java.net java.util

Librerie Per riferirsi a una classe contenuta in un particolare package: NomePackage.NomeClasse Per evitare di ripetere più volte il nome del package: comando import import java.awt.button Button b; b = new Button(); ;

Librerie Per importare tutte le classi contenute nel package java.io: import java.io.*;; Il package java.lang contiene la dichiarazione delle classi di base del linguaggio Java.

Classe String Inclusa nel package java.lang. Per usare le stringhe in Java si deve creare un oggetto di classe String. String nome = new String("Elena"); altro modo per allocare le stringhe: String nome = "Laura";

Classe String