Programmazione object oriented in C++

Slides:



Advertisements
Presentazioni simili
Il paradigma Object Oriented
Advertisements

Programmazione ad oggetti
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità B1 Le basi della programmazione a oggetti.
Costruttori e Distruttori
Recupero debito quarto anno Primo incontro
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.
1 Semantica Operazionale di un frammento di Java: lo stato.
Classi ed Oggetti in Java (Cenni). Richiami Ruolo delle Classi in Java Oggetti.
Fondamenti di Informatica
Interfacce. Interfacce come strumento di progetto Scelta delle classi di un progetto Criteri di coesione e accoppiamento Interfacce e riuso di codice.
Introduzione alla Object Oriented Programming, OOP E.Mumolo. DEEI
1 Programmazione ad oggetti in Java E.Mumolo, DEEI
E.Mumolo. DEEI Introduzione alla programmazione ad oggetti in C++ Object Oriented Programming, OOP E.Mumolo. DEEI
Costruzione di Interfacce Lezione 12 C++STL
Oggetti e dati primitivi
Programmazione Corso di laurea in Informatica
Oggetti e dati primitivi Programmazione Corso di laurea in Informatica.
Approfondimento delle classi
Type int_stack = struct { int top; int P[100]; } int_stack creapila() { int_stack s = new int_stack; s.top = 0; return s; } int_stack push(int_stack s,
Type int_stack = struct { int top; int P[100]; } int_stack creapila() { int_stack s = new int_stack; s.top = 0; return s; } int_stack push(int_stack s,
Lab. Calc. 2005/06 Ereditarietà. Lab. Calc. 2005/06 Scopo di questa lezione: Imparare a creare nuove classi ereditando da classi già esistenti. Capire.
Programmazione con Interfacce
Le classi Definizione di classe Attributi e metodi di una classe Costruttori e distruttori Private e public Funzioni friend Il puntatore this.
Sincronizzazione fra thread
Lezione IX Laboratorio di Programmazione. Le Classi Una classe C++ è definita come segue: class Nomeclasse { private: // metodi e attrib. visibili solo.
Java base IV: Java e la programmazione O.O.
Elementi di programmazione ad oggetti a. a. 2009/2010 Corso di Laurea Magistrale in Ingegneria Elettronica Docente: Mauro Mazzieri, Dipartimento di Ingegneria.
Programmazione in Java (8)
Introduzione alla programmazione Object Oriented
Università degli Studi di BresciaA.A. 2012/2013 Fondamenti di Programmazione Docente: Alessandro SaettiA.A. 2012/2013 Università degli Studi di Brescia.
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.
Fondamenti di Programmazione Prof.ssa Elisa Tiezzi
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA FINALE DEL 21 MAGGIO 2007 NOME: COGNOME: ________________________________________________________________________________.
I nomi in Java F. Bombi 18 novembre novembre 2003.
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
1 FONDAMENTI DI INFORMATICA II Ingegneria Gestionale a.a ° Ciclo Polimorfismo.
Oggetti in C# Lezione 1 Classi ed istanze Oggetti in C# - Lezione 1.
Corso di Algoritmi e Strutture Dati con Laboratorio A.A. 2014/15 Lezione 3.
Programmazione a oggetti
CORSO DI PROGRAMMAZIONE II Lezione 22
OOP Object Oriented Programming Programmazione Orientata agli Oggetti
Programmazione ad oggetti
Lezione 1 Panoramica sui paradigmi di programmazione
Fondamenti di Informatica II Ingegneria Informatica / Automatica (A-I) Meccanica Prof. M.T. PAZIENZA a.a – 3° ciclo.
Ereditarieta’. Contenuti Introduciamo un meccanismo fondamentale di Java: l’ereditarieta’ Permette di estendere classi gia’ definite (ovvero di definire.
1 Osservazioni Generali Struttura di programma Gerarchia di classi: overloading, overriding, e dispatching Analisi ed esecuzione Modificabilità e condivisione.
Fondamenti di Informatica II Ingegneria Informatica Prof. M.T. PAZIENZA a.a – 3° ciclo.
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.
Astrazione di dati Dati Astratti: cosa e perchè Dati Astratti: due meccanismi differenti Dati Astratti: due meccanismi differenti Astrazione e incapsulamento.
1 Tipi di Dato §descrittori, tipi, controllo e inferenza dei tipi §specifica (semantica) e implementazione di tipi di dato l implementazioni “sequenziali”
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
OBJECT ORIENTED DATABASE introduzione. OGGETTO Ha due componenti:  stato: valore di alcune variabili (variabili di istanza)  comportamento: insieme.
Fondamenti di Informatica 2 Ingegneria Informatica (A-I) Prof. M.T. PAZIENZA a.a – 3° ciclo.
Lezione X Laboratorio di Programmazione. Struttura di un programma Definizione classe e specifica (parziale) classe.hclasse.cpp main.cpp Specifica metodi.
LIP: 15 Marzo 2005 Vettori di interi. Esercizio proposto Definire una classe VectorInt i cui oggetti sono vettori omogenei di interi ordinati in modo.
1. 2 Introduzione alla programmazione ad oggetti Gli strumenti di programmazione finora mostrati sono solo una piccola parte della strumentazione necessaria.
Informazione ?. Informazione è Quale è il centravanti del Napoli?  La soluzione è ….. Scelta di un centravanti fra quelli di serie A! è Che giorno è.
1 FONDAMENTI DI INFORMATICA II Ingegneria Gestionale a.a ° Ciclo Strutture e Classi.
Fondamenti di informatica T-A Esercitazione 3 : Classi, metodi, visibilità, metodi statici AA 2012/2013 Tutor : Domenico Di Carlo.
Corso di Algoritmi e Strutture Dati con Laboratorio Richiami di Java – parte I.
La programmazione ad oggetti
Le basi di dati.
Introduzione all’Ereditarietà Pietro Palladino. Richiami UML Classe: descrizione di un insieme di oggetti software con caratteristiche simili Definisce.
Introduzione alle Classi e agli Oggetti in Java 1.
Transcript della presentazione:

Programmazione object oriented in C++ Le classi

Software di qualità Robustezza Estensibilità Compatibilità capacità di un programma di funzionare correttamente anche in condizioni anomale Estensibilità facilità con la quale un software si può modificare in relazione a variazioni delle specifiche Compatibilità facilità con la quale un software si può interfacciare con altri prodotti software

La classe Rappresenta uno dei concetti (IDEA) dell’applicazione, e deve essere il più astratto e generale possibile. Nuovo tipo di variabile con facile meccanismo di protezione dei dati (incapsulamento)

La classe in C++ Simile nella forma ad una struttura C Contiene oltre ai dati, anche le funzioni che permettono di controllare l’accesso ai dati

Esempio: una classe in C++ class Punto{ public: void Set(); void Print(); private: float x, y; };

Le classi Member function o metodi: le funzioni di una classe Una classe può nascondere all’utente la sua struttura interna e consentire l’accesso ai dati solo mediante le member function.

Dichiarazione di Oggetti Oggetto = istanza di una classe Punto pt; oggetto di tipo Punto il cui identificatore è pt Una classe non è un oggetto ma solo una sua descrizione non riserva un’area di memoria

Specificatori di accesso Public i membri della classe sono accessibili in tutto lo spazio di visibilità dell’oggetto di quella classe permettono al programmatore di accedere alle altre componenti dell’oggetto

Specificatori di accesso Private l’accesso è possibile soltanto attraverso le member function (specificatore di default)

Operatore:: La definizione delle member function è associata alla classe di appartenenza mediante l’operatore di scope resolution “::” (operatore class resolution)

Esempio: operatore ‘::’ void Punto::Print() { cout<< “Ascisse”<<x<<‘\n’; cout<< “Ordinate”<<y<<‘\n’; }

Chiamate di member function Avvengono mediante gli operatori ‘.’ e ‘->’ Es. Punto pt, *p_punto; pt.Print(); p_punto->Set();

Member function Sezione di interfaccia Sezione di implementazione sono descritte le member function header file (Punto.h) Sezione di implementazione sono definite le member function file sorgente (Punto.cpp)

Esempio: Sezione di interfaccia class Punto{ public: void Set(); void Print(); private: float x, y; };

Esempio: Sezione di implementazione void Punto::Print() { cout<< “Ascisse”<<x<<‘\n’; cout<< “Ordinate”<<y<<‘\n’; } void Punto::Set() cout << “Valore delle ascisse”; cin >> x; cout << “Valore delle ordinate”; cin >> y;

Costruttore Member function particolare usato per l’inizializzazione dei dati Stesso nome della classe di cui è membro e non possiede alcun valore di ritorno (nemmeno void) Richiamato direttamente al momento della dichiarazione di un oggetto

Distruttore Member function particolare usato per il rilascio della memoria allocata dinamicamente Stesso nome della classe preceduto dal simbolo ‘~’, non può avere argomenti e non possiede alcun valore di ritorno (nemmeno void) Chiamato automaticamente quando un oggetto esce dal proprio spazio di visibilità

Esempio: costruttore e distruttore class Punto{ public: Punto(); //costruttore ~Punto(); //distruttore void Set(); void Print(); private: float x, y; };

Esempio completo Sezione di interfaccia class Punto{ public: Punto(); //costruttore ~Punto(); //distruttore void Set(); void Print(); private: float x, y; };

Esempio completo (continua) Sezione di interfaccia //definizione costruttore classe Punto Punto::Punto() { x=y=0; } //definizione distruttore classe Punto Punto::~Punto() cout>>”Oggetto distrutto”>>’\n’;

Esempio completo (continua) Sezione di interfaccia (continua) void Punto::Print() //def. member function Print { cout<< “Ascisse”<<x<<‘\n’; cout<< “Ordinate”<<y<<‘\n’; } void Punto::Set() //def. member function Set cout << “Valore delle ascisse”; cin >> x; cout << “Valore delle ordinate”; cin >> y;