Anteprima
Vedrai una selezione di 6 pagine su 24
Introduzione a Java Pag. 1 Introduzione a Java Pag. 2
Anteprima di 6 pagg. su 24.
Scarica il documento per vederlo tutto.
Introduzione a Java Pag. 6
Anteprima di 6 pagg. su 24.
Scarica il documento per vederlo tutto.
Introduzione a Java Pag. 11
Anteprima di 6 pagg. su 24.
Scarica il documento per vederlo tutto.
Introduzione a Java Pag. 16
Anteprima di 6 pagg. su 24.
Scarica il documento per vederlo tutto.
Introduzione a Java Pag. 21
1 su 24
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Il metodo rappresenta una sorta di metodo di avvio (o di entry

main

point) per la nostra applicazione e deve essere sempre presente almeno in

una classe, poiché è invocato automaticamente dall’interprete java

all’atto dell’esecuzione dell’applicazione.

main è preceduto dalle keyword descritte di seguito.

 indica che il metodo non restituisce alcun valore. Ovviamente

void

un metodo può restituire un valore e in questo caso occorre

indicarne il tipo di appartenenza, per esempio per la

int

restituzione di un tipo intero.

 indica che si tratta di un metodo di classe che può essere

static

invocato senza la creazione del relativo oggetto.

 indica che il metodo è accessibile da client esterni alla

public

classe dove il metodo stesso è stato definito.

Le keyword static e public permettono al metodo main di essere

invocato pubblicamente dall’interprete , in quanto client esterno, e di

java

avviarne il relativo programma. Seguono il main una serie di parentesi

tonde all’interno delle quali è posta una variabile denominata args che

rappresenta il parametro del metodo. Ogni metodo, infatti, può avere zero

o più parametri che rappresentano, se presenti, delle variabili che saranno

riempite con valori (detti argomenti) passati al metodo medesimo all’atto

della sua invocazione. I parametri di un metodo devono avere, inoltre, un

tipo di dato associato; infatti, il parametro args è dichiarato come di tipo

array di stringhe (String[]).Il parametro args permette al metodo main di

ottenere in input gli argomenti eventualmente passati quando si invoca

dalla riga di comando il programma che lo contiene.

6 Concetti di base di programmazione

Un paradigma, o stile di programmazione, indica un determinato modello

concettuale e metodologico, offerto in termini concreti da un linguaggio

di

programmazione, al quale fa riferimento un programmatore per la

progettazione e scrittura di un programma informatico e dunque per la

risoluzione del suo particolare problema algoritmico. Si conoscono molti

differenti paradigmi di programmazione, ma quelli che seguono ne

rappresentano i più comuni.

Il paradigma procedurale, dove l’unità principale di programmazione è,

per l’appunto, la procedura o la funzione che ha lo scopo di manipolare i

dati del programma. Questo paradigma è a volte indicato anche come

imperativo perché consente di costruire un programma indicando dei

comandi (assegna, chiama una procedura, esegui un loop e così via) che

esplicitano quali azioni si devono eseguire, e in quale ordine, per risolvere

un determinato compito.

Questo paradigma si basa dunque sul seguente concetto chiavi: lo stato

del programma cambia a causa delle istruzioni eseguite (si pensi al

cambiamento del valore di una variabile in un determinato tempo durante

l’esecuzione del programma);

Esempi di linguaggi che supportano il paradigma procedurale sono

FORTRAN, COBOL, Pascal e C. Il paradigma ad oggetti, dove l’unità

principale di programmazione è l’oggetto (nei sistemi basati sui prototipi)

oppure la classe (nei sistemi basati sulle classi). Questi oggetti, definibili

come virtuali, rappresentano, in estrema sintesi, astrazioni concettuali

degli oggetti reali del mondo fisico che si vogliono modellare. Questi

ultimi possono essere oggetti più generali (pensate a un computer, per

esempio) oppure oggetti più specifici, ovvero maggiormente specializzati

(per esempio una scheda madre, una scheda video e così via). Noi

utilizziamo tali oggetti senza sapere nulla della complessità con cui sono

costruiti e comunichiamo con essi attraverso l’invio di messaggi (sposta il

puntatore, digita dei caratteri) e mediante delle interfacce (il mouse, la

tastiera). Inoltre, essi sono dotati di attributi (velocità del processore,

colore del case e così via) che possono essere letti e, in alcuni casi,

modificati. Questi oggetti reali vengono presi come modello per la

costruzione di sistemi software a oggetti, dove l’oggetto (o la classe) avrà

metodi per l’invio di messaggi e proprietà che rappresenteranno gli

attributi da manipolare. Esempi di linguaggi che supportano il paradigma

ad oggetti sono: Java, C#, C++, JavaScript, Smalltalk e Python.

6.1 Programmazione a oggetti

Java è un linguaggio di programmazione a oggetti Object-Oriented

Programming - OOP). Che cos’è, quindi, la OOP? Il mondo che ci

circonda è costituito da oggetti: persone. automobili, costruzioni, alberi,

negozi, navi, zucche e re. Ciascuno di questi oggetti ha la capacità di

svolgere azioni e ciascuna di queste azioni può influenzare altri oggetti

del mondo. La OOP è una metodologia di programmazione che considera

il programma come costituito da oggetti (o istanze) che possono agire da

soli e anche interagire fra loro. In un programma, un oggetto software può

rappresentare un oggetto del mondo reale o una sua astrazione.

Si consideri, per esempio, un programma che simula un incrocio stradale,

con lo scopo di analizzare il flusso del traffico. Questo programma

utilizzerà tanti oggetti, ognuno dei quali rappresenta una singola

automobile che entra nel incrocio, e probabilmente anche altri oggetti che

rappresentano ciascuna corsia della strada, i semafori e cosi via. Le

interazioni fra questi oggetti permettono di giungere ad alcune

conclusioni riguardanti la progettazione dell‘incrocio.

La programmazione a oggetti ha una propria terminologia. Un oggetto ha

diverse caratteristiche, dette attributi. Per esempio, un oggetto

automobile potrebbe avere attributi come il nome, la velocità corrente e il

livello di carburante. I valori degli attributi di un oggetto costituiscono lo

stato dell’oggetto stesso. Le azioni che un oggetto può effettuare sono

dette comportamenti (behavior). Come si è visto in precedenza, ciascun

comportamento è definito in una porzione di codice Java, detta metodo.

Gli oggetti di uno stesso tipo condividono lo stesso tipo di dato. Una

classe definisce il tipo di dato di un oggetto; è una sorta di “stampo” che

consente di creare (in gergo di istanziare) oggetti; il tipo di dato di un

oggetto è dato dal nome della classe. Per esempio, in un programma di

simulazione del traffico, tutte le automobili possono essere create dalla

stessa classe, probabilmente chiamata Automobile; quindi il loro tipo è

Automobile.

Tutti gli oggetti di una classe hanno gli stessi attributi e lo stesso

comportamento,per esempio si spostano avanti o indietro. Questo non

vuol dire che tutte le automobili simulate siano identiche. Sebbene

abbiano gli stessi attributi, ognuna di esse può trovarsi in uno stato

differente. Cioè ogni loro attributo può assumere diversi valori per

ognuna di esse. Quindi potremmo osservare che tre automobili prodotte

da altrettanti costruttori differenti viaggiano a tre diverse velocità. Tutto

questo risulterà più chiaro quando si inizierà a scrivere le prime classi

Java.

Come si vedrà, la stessa metodologia a oggetti può essere applicata a

qualsiasi tipo di programma e non si limita ai programmi di simulazione.

6.2 Oggetti, metodi e classi

Un oggetto è un costrutto programmativo che possiede dati, detti attributi,

e che può effettuare certe operazioni, note come comportamenti

dell’oggetto. Una classe definisce un tipo di oggetto; rappresenta una

sorta di stampo per definire gli oggetti. Tutti gli oggetti della stessa classe

hanno gli stessi tipi di dato e gli stessi comportamenti. Quando un

programma viene avviato, ciascun oggetto può operare da solo o

interagire con altri oggetti per raggiungere gli obiettivi del programma. Le

azioni effettuate dagli oggetti sono definite dai metodi.

La programmazione orientata agli oggetti utilizza classi e oggetti, ma li

usa in modo diverso da come avviene in altri linguaggi meno recenti.

Occorre seguire alcuni principi di progettazione. I tre principi

fondamentali della progettazione orientata agli oggetti sono

incapsulamento, polimorfismo ed ereditarietà.

6.3 Incapsulamento

Il termine incapsulamento fa pensare all’atto di mettere qualcosa in una

capsula, di impacchettare le cose. Questa intuizione è fondamentalmente

corretta. La caratteristica principale dell’incapsulamento, tuttavia, non

consiste semplicemente nel racchiudere gli Oggetti in una capsula» ma

nel rendere visibile solamente una parte di questa capsula. Quando si

produce un frammento di software, occorre descriverlo in modo che altri

programmatori possano utilizzarlo e sorvolare su tutti i dettagli del suo

funzionamento. Si sottolinea che l ‘ incapsulamento nasconde i dettagli

del contenuto della capsula. Per questo motivo, l’’incapsulamento è

spesso chiamato information hiding (letteralmente “nascondere le

informazioni”).

I principi dell’incapsulamento si applicano a tutta la programmazione in

generale, non solamente alla programmazione orientata agli oggetti.

6.4 Il polimorfismo

II termine polimorfismo deriva dal greco e vuol dire “molte forme”.

L’idea alla base del polimorfismo consiste nel permettere a una stessa

istruzione di un programma di avere significati differenti in contesti

differenti. Il polimorfismo ricorre comunemente nella lingua italiana e il

suo utilizzo in un linguaggio di programmazione lo rende più simile a un

linguaggio umano. Per esempio, la frase “vai pure agli allenamenti”

assume un significato diverso a seconda della persona con cui si sta

parlando. Per uno lo sport potrebbe essere la pallavolo, per un altro il

calcio.

In un linguaggio di programmazione come Java, il termine polimorfismo

india che il nome di un metodo, usato come istruzione, può causare azioni

differenti a seconda degli oggetti che svolgono l’azione richiesta. Per

esempio, un metodo mostraStato() potrebbe mostrare lo stato di un

oggetto. Tuttavia il tipo di attributi, il loro numero e la modalità con cui

vengono presentati dipende dal tipo di oggetto che esegue l’azione

6.5 Ereditarietà

L’ereditarietà è un modo di organizzare le classi. Grazie all’ereditarietà è

possibile definire una sola volta gli attributi e i comportamenti comuni e

applicarli poi a un intero insieme di classi. Se si definisce una classe

generica, si può utilizzare l’ereditarietà a posteriori per definire classi

specializzate che aggiungono o perfezionano alcuni dettagli della classe

generica. Un esempio di un insieme di classi di questo tipo è

rappresentato nella Figura 3, dove si può notare che a ogni livello la

Dettagli
Publisher
A.A. 2017-2018
24 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher deviltrigger di informazioni apprese con la frequenza delle lezioni di Fondamenti di informatica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Firenze o del prof Berretti Stefano.