Il linguaggio Java PART 2

Stampa

Tratto da Wikipedia, l'enciclopedia libera.

La prima caratteristica, l'orientamento agli oggetti, si riferisce a un moderno metodo di programmazione e progettazione. L'idea principale della programmazione ad oggetti consiste nel rendere il software la rappresentazione di entità reali o astratte ma ben definite (oggetti). Questi oggetti, come nella vita pratica, hanno proprietà rappresentate da valori, e qualità o meglio metodi: ciò che sanno fare questi oggetti. Si pensi ad una automobile: ha delle proprietà come il colore o il numero di porte, e dei metodi, per esempio può girare a destra o sinistra, andare avanti o indietro, accelerare, decelerare ecc. Riportando la programmazione in questi termini è facile capire come questo renda più facile la gestione di grandi progetti, migliorarne la qualità e la mantenibilità.

L'eredità in java è implementata mediante la parola chiave extends applicato dopo la dichiarazione di una classe

Una classe estende sempre una e una sola altra classe, ma può a sua volta essere estesa da un numero arbitrario di classi, se non specificato la classe estende di norma la classe Object

Questo sistema rende disponibile un modo per creare gerarchie di classi ben definite, ad esempio una classe Quadrilatero può definire alcuni comportamenti generali per tutte le figure geometriche con 4 lati, tuttavia si può presentare la necessità di aver bisogno di caratteristiche più specifiche per i nostri oggetti, quindi creiamo una classe Quadrato che estende la classe Quadrilatero da cui deriva tutti gli attributi (le variabili di istanza) e tutti i comportamenti (i metodi di istanza) relativi ad un qualunque quadrilatero, salvo poi riscrivere (overriding) quei comportamenti che sono prettamente associati ai quadrati (come ad esempio avere 4 lati uguali).

L'overriding si attua semplicemente scrivendo all'interno della classe che estende (in questo caso la classe Quadrato) il metodo che vogliamo riscrivere, utilizzando la stessa firma del relativo metodo della superclasse (deve avere lo stesso nome e gli stessi attributi, in numero e tipo)

È bene puntualizzare, quindi, che la tecnica dell'ereditarietà serve per specificare e specializzare un determinato comportamento, non viceversa. In java non è prevista l'ereditarietà multipla (una classe può avere al più una superclasse).

L'utilizzo di una interfaccia in java consente a tutti gli oggetti che implementano di unificare il loro comportamento. Ovvero l'oggetto interface in java è una semplice dichiarazione di metodi che tutte le classi che implementano l'interfaccia devono realizzare al loro interno.

Con l'implementazione dell'interfaccia la classe Quadrato deve contenere al suo interno i metodi calcolaPerimetro e calcolaArea propri che non possono essere ereditati dalla classe padre. L'utilizzo delle interfacce viene usato quando si hanno delle gerarchie di oggetti, o oggetti semplici che possiedono delle operazioni comuni (metodi), ma l'implementazione di queste sono differenti una dall'altra.