Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Programmazione Orientata agli Oggetti: Caratteristiche, Concetti e Vantaggi, Dispense di Elementi di Informatica

Una introduzione alla programmazione orientata agli oggetti (OOP), un paradigma di programmazione che consente di rappresentare elementi in base ai loro concetti e comportamenti. L'OOP si basa su tre principali concetti: encapsulamento, ereditarietà e polimorfismo. le caratteristiche e i concetti fondamentali dell'OOP, incluse le classi, gli oggetti e le interfacce.

Tipologia: Dispense

2015/2016

Caricato il 23/09/2016

rosario_ariosto
rosario_ariosto 🇮🇹

2 documenti

1 / 20

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Capitolo 1
Il paradigma
Object Oriented
Programming
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14

Anteprima parziale del testo

Scarica Programmazione Orientata agli Oggetti: Caratteristiche, Concetti e Vantaggi e più Dispense in PDF di Elementi di Informatica solo su Docsity!

Capitolo 1

Il paradigma Object Oriented Programming

Programmazione

Procedurale

I programmi scritti con metodologie procedurali sono :

  1. Poco trasportabili (No multipiattaforma)
  2. Poco riusabili (legati al problema che risolvono)
  3. Col tempo poco manutenibili
  • (^) Approccio : lo sviluppatore, tramite strumenti a disposizione, rappresenta elementi nello spazio dei problemi
  • (^) Oggetti : elementi che si trovano nello spazio dei problemi e le loro rappresentazioni nello spazio delle soluzioni
  • (^) OOP consente quindi di descrivere il problema nei suoi termini propri, ciascun oggetto avrà uno stato e un set di operazioni che gli si può chiedere di eseguire
  • (^) Si basa su due principali strumenti :
    • (^) Classe
    • (^) Oggetto
  • (^) E su tre concetti :
    • (^) Incapsulamento
    • (^) Ereditarietà
    • (^) Polimorfismo
  • (^) Un classe consente all’utente di definire TIPI
  • (^) E’ un archetipo (l’immagine, la struttura di un’idea)
  • (^) Tutti gli elementi della classe condividono aspetti comuni e comportamenti comuni
  • (^) Es: un astrazione del concetto ContoCorrente
    • tutti i conti hanno un numero
    • tutti i conti hanno un saldo
  • (^) Allo stesso tempo :
    • (^) Il “particolare” conto ha IL PROPRIO SALDO e il PROPRIO NUMERO (ha un proprio stato)
  • (^) Su tutti I conti correnti è possibile effettuare operazioni di : - (^) Prelievo() - (^) Versamento()
  • (^) L’insieme di tutte le lampade
  • (^) Ogni lampadina avrà uno stato (attributo)
  • (^) Due funzionalità (comportamento): - (^) Accendi - (^) Spegni
  • (^) Il box a dx descrive l’interfaccia della classe
  • (^) Incapsulamento o Information Hiding
  • (^) Tramite l’HI una classe acquisisce caratteristiche di robustezza, indipendenza e riusabilità (e manutenibilità)
  • (^) Costruire una classe pubblicando SOLO quello che è necessario occultandone l’implementazione
  • (^) L’eventuale modifica della parte nascosta sgrava dal preoccuparsi degli effetti che la modifica stessa potrebbe avere sugli utilizzatori
  • (^) Ereditarietà
  • (^) Il termine è molto legato alla realtà
  • (^) Nel mondo reale si è portati a classificare tutto con classi e sottoclassi
  • (^) Un cane è un animale, un’automobile è un veicolo, un sassofono è uno strumento musicale
  • (^) Il meccanismo di ereditarietà consente di non scrivere nuove classi che hanno comportamenti simili ma che differiscono per un qualche dettaglio
  • (^) In fase di analisi, nel momento in cui ci si accorge che più entità del dominio hanno caratteristiche comuni e differiscono per una specializzazione o comportamento, si procede astraendo una classe (detta superclasse o classe padre o classe base)
  • (^) Un dipendente, nel senso più generale e indipendente dalla qualifica, avrà sempre un nome ed un’età.
  • (^) Le classi figlie erditano proprietà e comportamenti della classe padre, e dovranno specializzare solo proprietà e comportamenti propri
  • (^) Polimorfismo
  • (^) Consente di riferirci con un unico termine ad entità diverse
  • (^) Meccanismo molto potente che consente di ridurre il codice scritto e di poterlo ampliare per derivazione
  • (^) Supponiamo di voler scrivere un programma che calcoli l’area per un poligono
  • (^) All’invocazione del metodo calcolaArea del client, il programmatore non ha bisogno di sapere preventivamente quale frammento di codice verrà eseguito
  • (^) La funzione area() potrà essere applicata al rettangolo, al triangolo ed al rombo
  • (^) Verrà eseguito il codice opportuno in relazione al tipo specifico
  • (^) Meccanismo di UpCasting (conversione del tipo verso l’alto) ossia operare su di un tipo derivato come se fosse il suo tipo base