sabato 20 settembre 2014

Programmazione ad Oggetti OOP Lezione 2

Utilizzo delle Classi: Seconda Lezione OOP 18-19/09/2014

Esempio:
Class A
   {
      int a;
      char b[15];
      f();
   };

int main()
{
    A Object;               
*!* Un oggetto per essere creato va dichiarato( Classe+ Nome Oggetto), qui vediamo la dichiarazione di un Oggetto di nome "Object" di Classe"A".
}


I programmi sono composti da parti visibili e/o invisibili: le parti visibili possono essere utilizzate all'interno del main(), le parti invisibili al contrario no.
Per rendere una Classe visibile devo scrivere il comando "public:"

*!* Le Classi possono essere Pubbliche, Private e Protette, l'insieme di tutto quello che è pubblico costituisce l'interfaccia. Non c'è un ordine con il quale porre una tipologia (pub/priv/prot) prima dell'altra l'importante è che questa appaia una volta sola.

*!* Le parti Private sono visibili sempre all'interno della Classe

*!* In C++ se non viene dichiarato diversamente la Classe è considerata Privata di default, in JAVA invece viene considerata Pubblica di default.

Vediamo ora degli esempi risultanti da IDE C++:
con Classe A public:



con Classe A private (avremo nel nostro caso una comunicazione di errore da parte del compilatore:



Anno scolastico 2014/2015 Programmazione ad Oggetti OOP Lezione 1

Programmazione ad oggetti: (OOP, Object Oriented Programming) 17/09/2014


Il concetto che sta alla base della programmazione ad oggetti è quello della classe. La classe è infatti il progetto dell'oggetto. 

Le classi definiscono dei tipi di dato e permettono la creazione degli oggetti secondo le caratteristiche definite nella classe stessa; il concetto alla base della classe è quello delle strutture visto l'anno scorso, la differenza che distingue una classe da una struttura è che all'interno della classe possono essere presenti anche delle funzioni. 

In particolare le variabili della classe vengono denominate proprietà o attributi, le funzioni invece metodi.

Da una classe può essere creato un oggetto (tecnicamente un oggetto è un istanza di una classe) il quale conterrà tutti gli attributi e i metodi definiti dalla classe.

*!* La Classe è il progetto di un Oggetto, un esempio di classe in C è la dichiarazione di variabile int

Lavorativamente parlando possiamo distingue due tipi di programmatori nell'ambito della OOP:
1 Programmatore che progetta l'oggetto (ricordiamo che 1 progetto = più oggetti)
1 Programmatore che utilizza l'oggetto tramite sua relativa interfaccia
da questo ne consegue che la prima cosa da imparare è come si utilizza l'interfaccia dell'oggetto di cui abbiamo bisogno.

Per fare un programma utilizzando la OOP abbiamo bisogno di un IDE (Integrated development environment) orientato ad oggetti, tra i più diffusi figurano:
JAVA
C#
C++
...
*!* Questi IDE non sono totalmente OOP in quanto non prevedono l'utilizzo di soli oggetti, in questo ambito solo il progetto Eiffel si può definire come totalmente orientato agli oggetti

*!* Framework: contenitore di oggetti creati per risolvere questioni specifiche.

Come si crea un oggetto?

Un oggetto a livello concettuale si dichiara come una variabile, nel dettaglio la Classe rappresenta il tipo dell'Oggetto.
Vediamo un esempio:
Supponiamo di voler creare una Classe Persona con all'interno due attributi nome, stipendio e una funzione f:

Class Persona
   {
       char nome[15];
       int stipendio;
       f();
   }Dipendente;

notiamo che è del tutto simile a una dichiarazione di una struttura (a parte per la presenza di una funzione al suo interno). Nel nostro esempio la Classe Persona è il progetto e la variabile Dipendente è l'oggetto; così facendo abbiamo creato una Classe Persona con due campi e istanziato l'oggetto Dipendente.

*!* Per accedere ai campi di un oggetto si utilizza (come per le strutture) la notazione puntata: Dipendente.nome