Utente:DamianoDiBerardo/Sandbox
Java
[modifica | modifica sorgente]Cos'è?
[modifica | modifica sorgente]Java[1] è unLinguaggio di programmazionead alto livello, nato intorno gli anni 90 posseduto dalla Oracle Corporation
è un linguaggio orientato agli oggetti e una delle particolarità di questo linguaggio è la sua Java Virtual Machine(JVM)
che fa da interprete per ogni sistema operativo
Com'è nato?
[modifica | modifica sorgente]Java è stato creato da James Gosling per l'azienda Sun Microsystems, ora di proprietà della Oracle.In un primo momento si decise di destinare questo nuovo prodotto alla creazione di applicazioni complesse per piccoli dispositivi elettronici; fu solo nel 1993 con l'esplosione di internet che Java iniziò a farsi notare come strumento per iniziare a programmare per internet.
Ambiti Applicativi
[modifica | modifica sorgente]Java viene utilizzato in tutto ma principalmente nella programmazione in internet e per applicazioni di vario genere (applicazioni android, desktop, aziendali, scientifiche, di trading, ecc...).
Introduzione generale
[modifica | modifica sorgente]Tipi di dati
[modifica | modifica sorgente]I tipi di dati ammessi in un programma java sono:
- otto tipi primitivi (boolean, byte, char, short, int, long, float, double);
- il tipo void.
Tipi Primitivi
[modifica | modifica sorgente]byte | Da -27 a 27 - 1 | Da -128 a 127 |
---|---|---|
char | Da 0 a 216 - 1 | Da 0 a 65535, ovvero da '\u0000' a '\uffff' |
Short | Da -215a 215 - | Da -32768 a 32767 |
Int | Da -231 a 231 - 1 | Da -2147483648 a 2147483647 |
long | Da -263 a 263 - 1 | Da -9223372036854775808 a 9223372036854775807 |
byte, short, int e long
I tipi byte, short, int e long sono tutti utilizzati per rappresentare numeri interi ma cambia il range di numeri utilizzabili
public class Esempio
{
private byte numero = 0;
private short numero = 0:
private int numero = 0;
private long numero = 0;
}
char
Il tipo char serve ad inserire delle singole lettere es:"a"
public class Esempio
{
private char lettera ='a';
}
boolean
Il tipo boolean può comprendere solo due valori: "true" e "false"
public class Esempio
{
private boolean variabileBooleana = true;
}
float e double
I tipi float e double vengono utilizzati per rappresentare i numeri reali quindi con la virgola e come per i tipi interi, anche qui tra float e double cambia solo il range di numeri utilizzabili
public class Esempio
{
private float numero = 0,5;
private double numero = 0,5;
}
Il tipo void
[modifica | modifica sorgente]Il tipo void non ammette alcun ritorno di dati perciò si può considerare come "vuoto"
Metodi
[modifica | modifica sorgente]Cos'è un metodo?
[modifica | modifica sorgente]Tutti i linguaggi di programmazione forniscono la possibilità di definire, sotto un solo nome, interi gruppi di istruzioni. In questo modo possiamo riutilizzare un blocco di codice in molte parti del programma, semplicemente richiamando il nome con cui l'abbiamo definito, senza dover riscrivere tutto il blocco ogni volta.
Definire un metodo in Java
[modifica | modifica sorgente]Vanno specificato il tipo di visibilità public|private|protected, dopo il tipo di variablile e il nome
Ecco un esempio:
[public|protected|private] Tipo identificatore(Tipo1 parametro1, Tipo2 parametro2, ...)
// blocco di codice appartenente al metodo
return varTipo;
}
lo statement return è opzionale nel caso in cui Tipo sia void.
Richiamare il metodo
[modifica | modifica sorgente]Per chiamare il nostro metodo all'interno della classe in cui lo stiamo definendo, sarà sufficiente scrivere qualcosa del genere:
Tipo identificatore;
Costruttori
[modifica | modifica sorgente]Il costruttore è quel metodo di una classe il cui compito è proprio quello di creare nuove istanze, oltre ad essere il punto del programma in cui un nuovo elemento viene creato ed è reso disponibile per l'interazione con il resto del sistema.Il costruttore è spesso usato per effettuare le inizializzazioni dello stato delle nuove istanze. In Java possono esserci molteplici costruttori per una medesima classe e ne esiste sempre almeno uno. Se infatti per una data classe non viene specificato alcun costruttore, il compilatore ne sintetizza automaticamente uno senza argomenti, detto costruttore default.
Classi e Oggetti
[modifica | modifica sorgente]Oggetti
[modifica | modifica sorgente]Nella vita reale noi vediamo negli oggetti dalle caratteristiche tangibili e riconoscibili, nel mondo OOP invece, il concetto di oggetto si amplia e un oggetto può contenere elementi concreti, ma anche entità come processi o concetti teorici e astratti Gli oggetti di cui stiamo parlando non hanno caratteristiche fisicamente distinguibili ma sono identificati dall'avere:
- stato, l'insieme delle variabili interne che ne definiscono le caratteristiche in un certo istante dell'esecuzione;
- "comportamento", le modalità di azione o di reazione di un oggetto, in termini di come il suo stato cambia e come i messaggi passano.
Classi
[modifica | modifica sorgente]Una classe è esattamente il prototipo di un oggetto in cui vengono definiti tutti i messaggi che ciascuna istanza sarà in grado di ricevere. Nella rappresentazione di una classe sarà quindi importante evidenziare:
- l'insieme dei metodi che la classe supporta (messaggi ricevibili)
- l'insieme delle variabili di stato (attributi) che ne rappresentano lo stato.
Ereditarietà
[modifica | modifica sorgente]Definizione di ereditarietà
[modifica | modifica sorgente]Si dice che una classe A è una sottoclasse di B quando:
- A eredita da B sia il suo stato che il suo comportamento
- un'istanza della classe A è utilizzabile in ogni parte del codice in cui sia possibile utilizzare una istanza della classe B.
Extends
[modifica | modifica sorgente]In Java la relazione di derivazione viene resa con la keyword extends che deve essere usata nella dichiarazione della classe:
public class esempio
{
private int altezza;
private int base;
//costruttori
//costruttore vuoto
public esempio()
{
}
public esempio(int altezza, int base)
{
this.altezza=altezza
this.base=base
}
//costruttore di copia
public esempio(esempio c)
{
}
}
Implica che ogni istanza della classe A sarà anche di tipo B ed avrà a disposizione tutti i metodi della classe B e nel suo stato saranno presenti tutte le variabili che si trovano nella super classe B.
Polimorfismo
[modifica | modifica sorgente]Il termine polimorfismo nell'ambito dei linguaggi di programmazione si riferisce in generale alla possibilità data ad una determinata espressione di assumere valori diversi in relazione ai tipi di dato a cui viene applicata.