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 AD OGGETTI IN JAVA, Schemi e mappe concettuali di Informatica

Documento con la spiegazione dei principali concetti teorici dell'OOP in Java

Tipologia: Schemi e mappe concettuali

2021/2022

In vendita dal 29/03/2022

matteo-tedde-1
matteo-tedde-1 🇮🇹

5

(4)

19 documenti

1 / 6

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
INFORMATICA programmazione ad oggetti
La programmazione ad oggetti è vicina al nostro modo di pensare e per
questo motivo, è più facile da comprendere.
Oggetto: entità del problema identificata da uno stato interno e che
possiede attributi (caratteristiche) e metodi (comportamenti).
Classe: parte del programma (/codice sorgente) che descrive e definisce
le caratteristiche e i comportamenti degli oggetti che le appartengono.
Ogni oggetto è di un certo tipo classe.
Portabilità
Java codice sorgente non viene tradotto immediatamente in
eseguibile, ma in un linguaggio chiamato ByteCode, esso viene dato in
ingresso ad un software che lo interpreta e lo fa eseguire alla CPU. Questo
software è la JVM (Java Virtual Machine). JVM interpreta il codice.
Il ByteCode è portabile, è eseguibile su ogni sistema operativo a patto che
venga installata la JVM. Ostacoli alla portabilità: Versione JVM e
architettura della macchina (32/64 bit).
-JRE (Java Runtime Environment), pacchetto che contiene JVM, per la
sola interpretazione del ByteCode.
-JDK (Java Development Kit), JRE+compilatore. Per compilazione del
codice sorgente e interpretazione ByteCode.
Principi della OOP
Incapsulamento è la proprietà delle classi di incorporare al loro interno
sia gli attributi che i metodi, cioè le caratteristiche e i comportamenti
dell’oggetto.
Ereditarietà è la proprietà secondo cui tutte le classi sono inserite
all’interno di una gerarchia il cui capostipite è la classe Object . Grazie
all’ereditarietà è possibile creare nuove classi che vanno ad estendere
una classe già esistente (la superclasse) ereditandone attributi e metodi.
L’ereditarietà di java è singola, ovvero ogni sottoclasse dipende da
un’unica superclasse, mentre dalla superclasse possono dipendere
multiple sottoclassi.
Polimorfismo è la possibilità per i metodi di assumere diverse forme, cioè
implementazioni, diverse all’interno della gerarchia delle classi o
pf3
pf4
pf5

Anteprima parziale del testo

Scarica PROGRAMMAZIONE AD OGGETTI IN JAVA e più Schemi e mappe concettuali in PDF di Informatica solo su Docsity!

INFORMATICA  programmazione ad oggetti

La programmazione ad oggetti è vicina al nostro modo di pensare e per questo motivo, è più facile da comprendere. Oggetto : entità del problema identificata da uno stato interno e che possiede attributi (caratteristiche) e metodi (comportamenti). Classe : parte del programma (/codice sorgente) che descrive e definisce le caratteristiche e i comportamenti degli oggetti che le appartengono. Ogni oggetto è di un certo tipo classe. Portabilità Java  codice sorgente non viene tradotto immediatamente in eseguibile, ma in un linguaggio chiamato ByteCode , esso viene dato in ingresso ad un software che lo interpreta e lo fa eseguire alla CPU. Questo software è la JVM (Java Virtual Machine). JVM interpreta il codice. Il ByteCode è portabile, è eseguibile su ogni sistema operativo a patto che venga installata la JVM. Ostacoli alla portabilità: Versione JVM e architettura della macchina (32/64 bit).

  • JRE (Java Runtime Environment), pacchetto che contiene JVM, per la sola interpretazione del ByteCode.
  • JDK (Java Development Kit), JRE+compilatore. Per compilazione del codice sorgente e interpretazione ByteCode. Principi della OOP Incapsulamento è la proprietà delle classi di incorporare al loro interno sia gli attributi che i metodi, cioè le caratteristiche e i comportamenti dell’oggetto. Ereditarietà è la proprietà secondo cui tutte le classi sono inserite all’interno di una gerarchia il cui capostipite è la classe Object. Grazie all’ereditarietà è possibile creare nuove classi che vanno ad estendere una classe già esistente (la superclasse) ereditandone attributi e metodi. L’ereditarietà di java è singola, ovvero ogni sottoclasse dipende da un’unica superclasse, mentre dalla superclasse possono dipendere multiple sottoclassi. Polimorfismo è la possibilità per i metodi di assumere diverse forme, cioè implementazioni, diverse all’interno della gerarchia delle classi o

all’interno di una stessa classe. Esistono due tipi di polimorfismo. Overriding e Overloading Overriding permette di ridefinire, all’interno di una sottoclasse, il metodo ereditato da una superclasse mantenendone la firma (tipo, nome, parametri), ma cambiandone l’implementazione interna. Overloading permette di avere in una stessa classe metodi con lo stesso nome ma che variano per numero e/o tipo di parametri. Information Hiding L’obiettivo di ogni programmatore è quello di incapsulare attributi e metodi mantenendo le informazioni il più privato possibile. Per far questo getters/setters, metodi che permettono di leggere/valorizzare attributi privati. Hanno diversi vantaggi rispetto all’uso di public:

  • Sono alternativi , quindi un attributo può essere o solamente letto, o solamente scritto, o entrambi.
  • Sono programmabili , quindi possono essere dotati di un’implementazione che limiti l’azione di lettura/scrittura solo in casi specifici. I modificatori Modificatori di accesso , sono 4 e definiscono il tipo di riservatezza dell’attributo/metodo/classe a cui sono attribuiti.
  • Public : attributo visibile a tutte le classi.
  • Protected : attributo visibile alle classi dello stesso package o eventuali sottoclassi di altri package.
  • Package : attributo visibile alle classi dello stesso package.
  • Private : attributo visibile solamente alla classe in cui è incapsulato. Modificatori final, static, abstract Final Static Abstract Classe Blocca ereditarietà - Ne blocca l’istanziazione Attributo Lo rende costante Lo rende condiviso tra tutte le istanze

Metodo Blocca overRiding Lo rende invocabile anche senza l’istanziazione Privo di implementazione interna, costringe overRide nelle sottoclassi

contiene i parametri della funzione e le variabili locali. Quando la funzione termina il record di attivazione viene eliminato. Nel punto più basso dello stack si trova la funzione main, la prima ad essere richiamata. Gestione LIFO  Last In First Out (Stack) Gestione FIFO  First in First Out (Code) Le anomalie Errori ed eccezioni gestiti da classi. Classe Throwable sottoclasse di Object. Da throwable dipendono due classi error e exception. Gli errori non possono essere gestiti, poiché generati dalla virtual machine. Le anomalie (/eccezioni) possono essere gestite. Da exception dipendono tutti i tipi di eccezione. Try { String line = br.readLine(); } catch(IOException errore) { errore.printStackTrace(); } La superclasse Throwable ha duesottoclassi dirette, sempre in java.lang

- Error o Errori fatali, dovuti a condizioni incontrollabili  Esaurimento delle risorse di sistema necessarie alla JVM, incompatibilità di versioni,…  In genere i programmi non gestiscono questi errori - Exception o Tutti gli errori che non rientrano in Error  I programmi possono gestire o no questi errori a seconda dei casi Un’ anomalia è un evento che interrompe la normale esecuzione del programma Se si verifica un’eccezione il metodo trasferisce il controllo ad un gestore delle eccezioni. Il suo compito è quello di uscire dal frammento di codice che ha generato l’eccezione e decidere cosa fare. Il metodo br.readLine() può lanciare un oggetto di tipo IOException. Catch può catturare questo oggetto e gestirlo. Scrivere Exception o Throwable permette in qualsiasi caso il funzionamento.

Due categorie:

  • eccezioni controllate o dovute a circostanze esterne che il programmatore non può evitare  il compilatore vuole sapere cosa fare nel caso si verifichi l’eccezione
  • eccezioni non controllate o dovute a circostanze che il programmatore può evitare, correggendo il programma Eccezioni:
  • Per lanciare un’eccezione, usiamo la parola chiave throw (lancia), seguita da un oggetto di tipo eccezione throw exceptionObject; o Il metodo termina immediatamente e passa il controllo al gestore delle eccezioni  Le istruzioni successive non vengono eseguite Interfacce Un’interfaccia si definisce in maniera simile a una classe astratta, concettualmente rappresenta un’estensione logica di una classe astratta ma:
  • è costituita da soli metodi astratti
  • non usa il modificatore abstract
  • usa la parola chiave interface al posto di class Inoltre, una classe che implementa i metodi dell’interfaccia deve usare la parola chiave implements invece che extends public class DVD extends ProdottoPrezzato { // NO!!! public class DVD implements ProdottoPrezzato { // OK!!! Ma... che vantaggio offrono le interfacce rispetto alle classi astratte?
  • Una classe può estendere una sola classe (astratta o meno)
  • Una classe può implementare tante interfacce Librerie Libreria: file con estensione .jar, contenente tutte le classi di cui noi possiamo fare import. Il Runtime contiene delle librerie di cui noi