Concetti fondamentali nella programmazione ad oggetti

Incapsulamento

Il concetto di incapsulamento comporta che attributi e proprietà di un oggetto siano accessibili solo attraverso i metodi dell’oggetto stesso, escludendo che questi possano essere raggiunti direttamente, secondo il proncipio dell’information hiding, quel principio che vorrebbe che la maggior parte delle informazioni siano occultate tanto per una questione di semplificazione quanto per un fatto di sicurezza.

Ereditarietà

Il concetto di ereditarietà vuole che, data una classe base, questa possa dare luogo ad uno svariato numero di classi derivate (o sottoclassi) ciascuna delle quali eredita attributi e metodi della classe di partenza.

Polimorfismo

L’idea di polimorfismo comporta che ciascuna classe derivata possa estendere metodi ed attributi della classe base, dando luogo ad oggetti dotati di caratteristiche proprie inizialmente non previste dalla classe base.

Gerarchia delle classi

L’insieme delle classi base e derivate possono essere rappresentate all’interno di una struttura ad albero, utile a rappresentare le derivazioni di ciascuna classe.

Visibilità e scope

Il concetto di incapsulamento, mediante il quale estendiamo o limitiamo la visibilità di un attributo o di una classe viene gestito attraverso parole chiave specifiche del linguaggio.

Public

Indica che i dati sono accessibili a qualunque altra classe

Protected

Limita la visibilità dei dati alle sottoclassi di questa e alle classi contenute nel medesimo package in cui il dato é definito

Package

Limita la visibilità dei dati alle classi contenute nel medesimo package della classe definita.

Private

Indica che il dato non é accessibile alle altre classi ma solo a quella dichiarata.

Scope di variabili

In Java le variabili possono essere dichiarate in qualsiasi punto. La visibilità della variabili é relegata al blocco in cui esse sono dichiarate. Questo ambito di visibilità viene detto scope. Le variabili dichiarate all’interno di una classe prendono il nome di attributi, mentre quelle dichiarate nei metodi assumo in nome di variabili locali. In linea generale vale il principio secondo cui una variabile dichiarata all’interno di un blocco di istruzioni non é visibile all’esterno di quel blocco.

I package e le classi

I package sono una funzionalità utile ad organizzare e raggruppare le classi in modo sistematico e modulare. Le classi principali di Java sono già raggruppate nel package java.lang. Una ulteriore funzionalità interessante dei package é costituita dalla possibilità di attribuire identificatori uguali a classi differenti purché queste siano dislocate in diversi package, purché questi abbiano nomi differenti. Per collocare una classe all’interno di un package é sufficiente indicare all’inizio del file la parola chiave package seguita dal percorso in cui il file della classe stessa é contenuto, con l’accortezza di sostituire gli slash con dei punti.

package app.classes

Overloading

Con il termine overload si intende la chiamata di metodi con lo stesso identificatore ma con parametri diversi.

Luca Scandroglio

Sono un consulente tecnico informatico, un web designer e uno sviluppatore italiano. Aiuto le aziende a dotarsi degli strumenti tecnologici e digitali per superare le sfide del mercato di oggi.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *