Introduzione alle classi e agli oggetti. Walter Didimo

Documenti analoghi
Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo

Introduzione alle Classi e agli Oggetti. Prof. Francesco Accarino IIS Altiero Spinelli Via leopardi 132 Sesto San Giovanni

Definizione di classi. Walter Didimo

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

Uso di metodi statici. Walter Didimo

Modulo 2: Strutture fondamentali della programmazione Java

Definizione di metodi in Java

Funzioni, Stack e Visibilità delle Variabili in C

Introduzione alla Programmazione in Java attraverso un esempio commentato

Linguaggio C: le funzioni. Introduzione e sintassi

Introduzione Programmazione Java

Definizione di classi

Linguaggio C: le funzioni. Introduzione e sintassi

Le Basi di dati: progettazione concettuale

La Gestione della Memoria. Carla Binucci e Walter Didimo

Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo)

Introduzione all uso degli oggetti in Java (parte II) Walter Didimo

FUNZIONI COME COMPONENTI SW FUNZIONI COME COMPONENTI SW FUNZIONI MODELLO CLIENTE/SERVITORE

Fondamenti di Programmazione Prof.ssa Elisa Tiezzi. Programmazione orientata a oggetti

La classe java.lang.object

Definizione di metodi

Questi lucidi provengono dal capitolo 2 di:

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Programmazione ad oggetti

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Dispensa 07. Oggetti e Java. Marzo Programmazione Java 1

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR

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

Programmazione Procedurale in Linguaggio C++

Metodi statici. Dichiarazione e chiamata di metodi statici

Quicksort e qsort() Alessio Orlandi. 28 marzo 2010

Introduzione al linguaggio C Puntatori

Corso di Linguaggi di Programmazione

INTRODUZIONE ALLA PROGRAMMAZIONE

Programmazione orientata agli oggetti. Ivan Lanese

COMPITO DI LABORATORIO DI PROGRAMMAZIONE Dicembre 2001

Definizione di metodi

nome (lista_parametri) Funzioni funzioni predefinite: sqrt(x) log(x) usare queste funzioni significa: specificare il valore degli argomenti

Ingegneria del Software

Passare argomenti al programma

Metodi. Un metodo è una porzione di codice a cui si associa un nome. Un istruzione eseguita da un metodo può essere:

Corso di Algoritmi e Strutture dati Programmazione Object- Oriented in Java (Parte I)

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

Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio)

Lezione 9 Esercizi d esame

18 - Classi parzialmente definite: Classi Astratte e Interfacce

Tipi astratti di dati

Descrizione delle operazioni di calcolo. Espressioni costanti semplici

Programmazione Procedurale in Linguaggio C++

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

Java: Definire Classi e Creare Oggetti

Caratteristiche di un linguaggio ad alto livello

Tipi di Dati Astratti

GESTIONE DEGLI ERRORI

L Allocazione Dinamica della Memoria

Laboratorio Progettazione Web Le funzioni in PHP. Angelica Lo Duca IIT-CNR 2012/2013

Laboratorio di programmazione

Input/Output di numeri

9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Introduzione alla programmazione

Linguistica Computazionale

Introduzione alla programmazione. Walter Didimo

Programmazione con Java

Esercitazione. Docente Ing. Mariateresa Celardo

Le basi del linguaggio Java

Subtype Polymorphism. Conversioni di tipo. Conversioni di tipo. Subtyping. Conversioni di tipo. Interfacce e subtype polimorfismo

TIPI PRIMITIVI: LIMITI

Programmazione a oggetti

Corso di Informatica

Programmi e Oggetti Software

Introduzione alla Programmazione Logica ed al linguaggio PROLOG

Programmazione Orientata agli Oggetti in Linguaggio Java

Linguaggio C: puntatori

Uso degli oggetti. Un programma Java. è un insieme di oggetti, ognuno istanza di una classe, che si inviano messaggi

Sommario Codifica dei dati Macchina Astratta Definizioni Esempi

Aggregati di dati eterogenei: il tipo struct. Esercizi risolti

Lezione 8. Sottoprogrammi

Corso sul linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java

C: panoramica. Violetta Lonati

Programmazione I. 11 gennaio Considerate la seguente gerarchia di classi (rappresentata mediante un diagramma UML): +f(double x):

Corso di Programmazione a oggetti

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

PROBLEMI ALGORITMI E PROGRAMMAZIONE

ERRATA CORRIGE. void SvuotaBuffer(void); void SvuotaBuffer(void) { if(getchar()!=10) {svuotabuffer();} }

Scope, Memoria e Tabella dei Simboli

Programmazione orientata agli oggetti Classi astratte e interfacce

Linguaggio C: le funzioni. Visibilità variabili e passaggio parametri

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Gli insiemi. Che cosa è un insieme? Come si indica un insieme?

Corso di Fondamenti di Informatica Tipi strutturati: Strutture typedef Anno Accademico 2008/2009 Francesco Tortorella

Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni

Informatica 3. LEZIONE 2: Sintassi e semantica

Classi e array. Viene ora affrontato un problema di definizione di una classe in cui una variabile d istanza è di tipo array

Array e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 12. A. Miola Dicembre 2006

Corso di Fondamenti di Informatica Il sistema dei tipi in C++

Definizione di classi

Linguaggio C: le funzioni

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2009/2010

Transcript:

Introduzione alle classi e agli oggetti Walter Didimo

Classi e oggetti La classe rappresenta l unità di base della programmazione ad oggetti: una classe definisce una tipologia di elementi (cioè una categoria di elementi dello stesso tipo) un elemento del tipo definito da una classe si chiama oggetto o istanza della classe Classe Automobile 001 Automobile Automobile 002 Istanze Automobile 003

Caratteristiche delle classi Definire una classe significa specificare: leproprietà delle sue istanze, cioè come esse sono fatte il comportamento delle sue istanze, cioè cosa esse sanno fare (quali servizi possiamo richiedere loro) Rettangolo - base - altezza Proprietà Comportamento - calcola il perimetro - calcola l area...

Struttura di una classe Una classe ha un nome e si compone di: un insieme di campi (detti anche attributi), che descrivono le proprietà delle sue istanze un insieme di metodi, che descrivono il comportamento delle sue istanze int base int altezza Rettangolo int perimetro () int area () nome campi metodi

Nome di una classe Il nome di una classe descrive in breve la tipologia delle sue istanze regole: non può contenere spazi bianchi e simboli di punteggiatura convenzioni: inizia sempre con una lettera maiuscola se si compone di più parole, le parole si scrivono attaccate ed ogni parola inizia con lettera maiuscola

Esempi di nomi nomi validi che rispettano le convenzioni: Rettangolo AutomobileDaNoleggio nomi validi che non rispettano le convenzioni: rettangolo AutomobiledaNoleggio nomi non validi: Automobile Da Noleggio Automobile.Da.Noleggio

Campi di una classe I campi descrivono le proprietà delle istanze della classe; ogni campo: ha un nome descrive una proprietà può assumere valori di un certo tipo (dominio); esempi int double String. numeri interi numeri reali stringhe alfanumeriche

Nome di un campo regole: non può contenere spazi bianchi e simboli di punteggiatura convenzioni: inizia sempre con una lettera minuscola se si compone di più parole, le parole si scrivono attaccate e dalla seconda in poi ogni parola inizia con una lettera maiuscola

Oggetti (istanze) di una classe Rettangolo int base int altezza rett1: Rettangolo base = 10 altezza = 3 rett2: Rettangolo rett3: Rettangolo base = 6 altezza = 7 base = 4 altezza = 2

Stato di un oggetto L insieme dei valori assunti dai campi di un oggetto istante per istante determina lo stato dell oggetto lo stato di un oggetto può cambiare nel tempo un oggetto cambia stato ogni volta che varia il valore di almeno uno dei suoi campi t 0 t 1 t 2 tempo rett1: Rettangolo base = 10 altezza = 3 rett1: Rettangolo base = 5 altezza = 3 rett1: Rettangolo base = 10 altezza = 7

Altri esempi di classi e campi AutomobileDaNoleggio String marca String modello String targa double prezzoorario int litricarburante. Persona String nome String cognome String codicefiscale String datadinascita int età. Automobile String marca String modello String targa Persona proprietario.

Metodi di una classe I metodi descrivono il comportamento delle istanze della classe; ogni metodo: ha un nome descrive un servizio che gli oggetti sanno svolgere ha un corpo, cioè un insieme di istruzioni che dicono come il metodo deve essere svolto può prendere dei dati in ingresso (detti anche parametri) può restituire un dato in uscita (dato di ritorno)

Prototipo e signature di un metodo Il prototipo di un metodo è la specifica del nome, del tipo di parametri, e del tipo di dato in uscita prototipo = nome + tipo parametri + tipo dato di ritorno La signature di un metodo è la sola specifica del nome e del tipo di parametri signature = nome + tipo parametri

Sintassi di un prototipo Il prototipo di un metodo ha la seguente sintassi <tipo dato di ritorno> <nome metodo> (<tipo parametri>) Indica il tipo di valore restituito dal metodo (void se il metodo non restituisce nulla) Il nome del metodo; non contiene spazi ed inizia per convenzione con lettera minuscola Indica una lista (eventualmente vuota) di parametri; ogni parametro ha un nome simbolico ed un tipo di valore associato

Esempi di prototipi Consideriamo gli oggetti di una classe Rettangolo; ecco un insieme di possibili metodi, descritti tramite i loro prototipi tipo dato di ritorno int void double nome metodo perimetro cambiadimensioni frazionediarea tipo parametri ( ) (int b, int a) (double f)

Invocazione di metodi Un programma ad oggetti consiste nella definizione di classi e oggetti cooperanti un oggetto ogg1 può ottenere un servizio da un oggetto ogg2, chiedendogli di eseguire uno dei suoi metodi la richiesta di servizio si chiama invocazione di metodo e corrisponde all invio di un messaggio da ogg1 ad ogg2 ogg1 deve specificare la signature del metodo di ogg2 che vuole invocare

Schema di invocazione di metodi Sia ogg2 un oggetto della classe Rettangolo e supponiamo che ogg1 voglia chiedere ad ogg2 di eseguire il metodo double frazionediarea(double f), specificando per f il valore 0.25 ogg1 frazionediarea (0.25) 12.5 ogg2:rettangolo base = 10 altezza = 5

Cosa accade nel tempo base = 10 altezza = 5 ogg2: Rettangolo ogg1 t 0 parametri metodo Istruzione 1 t 1 Istruzione 2 t 2 Istruzione 3 t 3.... t n+1 dati di ritorno Istruzione n t n

Nell esempio esempio specifico base = 10 altezza = 5 ogg2: Rettangolo ogg1 t 0 0.25 frazionediarea (double f) area area base base altezza altezza t 1 frazione area area ff t 2 return return frazione t 3 t 4 12.5

Un altro esempio Sia ogg2 un oggetto della classe Rettangolo e supponiamo che ogg1 voglia chiedere ad ogg2 di eseguire il metodo void cambiadimensioni(int int a, int b), specificando per a e b i valori 2 e 4 ogg1 cambiadimensioni (2,4) ogg2:rettangolo base = 210 altezza = 45 Questo metodo cambia lo stato dell oggetto!

Glossario dei termini principali Termine Classe Oggetto (o Istanza) Campo (o Attributo) Metodo Stato Corpo (di un metodo) Parametri (di un metodo) Prototipo (di un metodo) Signature (di un metodo) Significato Descrizione di una tipologia di elementi; una classe specifica le proprietà e il comportamento della categoria di elementi che rappresenta Uno degli elementi di una classe Costrutto di una classe che definisce una proprietà delle sue istanze; un campo può assumere valori di un certo dominio Descrizione di uno specifico servizio offerto dalle istanze di una classe; un metodo descrive parte del comportamento di una istanza della classe Insieme dei valori assunti dai campi di un oggetto istante per istante; lo stato di un oggetto può cambiare nel tempo Insieme delle istruzioni che specificano come il metodo va svolto Insieme dei dati che il metodo prende in ingresso Specifica del nome, dei parametri e del tipo di dato restituito da un metodo Specifica del nome e dei parametri di un metodo