Corso Base
Liceo Norberto Rosa – BussolenoProf. Angelo GIORGIO
Corso Java - Liceo Norberto Rosa 2
� Java è un Linguaggio di Programmazione orientato agli oggetti .
� Un Linguaggio di Programmazione è un linguaggio ad alto livello, dotato (al pari di un qualsiasi linguaggio naturale) di una sintassi e di una semantica ben definiti.
L’elemento base del linguaggio sono le istruzioni (parole).
• Sintassi: modo con le quali le istruzioni devono essere composte.• Semantica: significato delle istruzioni.
� La caratteristica fondamentale del linguaggio di Programmazione èinterpretabile dal Sistema di Elaborazione (PC, Tablet PC, SmartPhone).
Java
Corso Java - Liceo Norberto Rosa 3
Un po’ di Storia
� Java è stato creato a partire da ricerche effettuate alla Stanford University agli inizi degli anni Novanta .
� Java fu annunciato ufficialmente il 23 maggio 1995 a SunWorld.
� Il linguaggio è definito da un documento chiamato The Java Language Specification (spesso abbreviato JLS). La prima edizione del documento è stata pubblicata nel 1996.
� Da allora il linguaggio ha subito numerose modifiche e integrazioni, aggiunte di volta in volta nelle edizioni successive. Ad oggi, la versione più recente delle specifiche è la Java SE 7 Edition (quarta).
Corso Java - Liceo Norberto Rosa 4
Java Virtual Machine [ JVM ]
� Lo sviluppatore scrive il codice (codice sorgente) nel linguaggio Java in un sistema chiamato ambiente di sviluppo chiamato JDK (Java Develop Kit) es. E-clipse. Tra le altre cose compila il codice Java (trasformarlo da alto livello a basso livello – Bytecode ) interpretabile dal Sistema di Elaborazione.
� La Java Virtual Machine o JVM, è la componente della piattaforma Java che esegue i programmi tradotti in bytecode.
Corso Java - Liceo Norberto Rosa 5
Sintassi del Linguaggio Java
� Ogni istruzione è chiusa dal simbolo ;
� Java è case-sensitive : ossia Java riconosce il minuscolo dal maiscuolo.
� Java è che fortemente tipizzato ossia qualsiasi variabile al momento della dichiarazione è associato un tipo (TYPE) di riferimento.
� Esistono due grandi famiglie di Type in Java:
• Tipi Predefiniti : insieme finito di tipi che identificano il formato (dimensione) del dato in memoria.
• Tipi Utente : tipi complessi definiti dai programmatori attraverso il costrutto Class .
Corso Java - Liceo Norberto Rosa 6
Tipi Predefiniti
� Attenzione : tutti i tipi predefiniti hanno carattere minuscolo.
StringSequenza di caratteri alfanumericiString
Booleantrue o falseboolean
Charactercarattere singolo Unicode (intero senza segno a 16 bit)
char
Doublevirgola mobile a 64 bit doppia precisione (standard IEEE 754)
double
Floatvirgola mobile a 32 bit singola precisione (standard IEEE 754)
float
Longintero con segno a 64 bitlong
Integerintero con segno a 32 bitint
Shortintero con segno a 16 bitshort
Byteintero con segno a 8 bitbyte
Classe contenitore
DescrizioneTipo
Corso Java - Liceo Norberto Rosa 7
Dichiarazione - Assegnazione di una
Variabile
� In Java tutte la variabili devono essere dichiarate.
� Il costrutto sintattico della dichiarazione della variabile :
TYPE nomeVariabile;
Il nome della variabile può essere una qualsiasi stringa alfanumerica che non sia un numero o un costrutto sintattico del linguaggio.
Es1. Dichiarazione di una variabile di nome numero di tipo intero:
int numero;
Es2. Dichiarazione di una variabile di nome numero di tipo booleano:
boolean numero;
Corso Java - Liceo Norberto Rosa 8
Dichiarazione - Assegnazione di una
Variabile
� Il costrutto sintattico dell’assegnazione di un valore* alla variabile di riferimento [operatore =]:
nomeVariabile = valore;
Es. Assegnazione del valore 5 alla variabile di nome numero:
numero = 5;
* Il valore della variabile deve essere coerente con il tipo dellavariabile
Corso Java - Liceo Norberto Rosa 9
Operatori Aritmetici
� I principali Aritmetici, associati a variabili di tipo numerico, in Java sono:
Dichiarata la variabile c di tipo intera:
int c;
• La SOMMA [ + ]. Esempio: c = 7+4; � in c sarà memorizzato 11
• La SOTTRAZIONE [ - ]. Esempio: c = 6-1; � in c saràmemorizzato 5
Corso Java - Liceo Norberto Rosa 10
Operatori Aritmetici
• La MOLTIPLICAZIONE [ * ]. Esempio: c = 5*4; � in c saràmemorizzato 20.
• La DIVISIONE [ / ]. Esempio: c = 12/3; � in c sarà memorizzato 4
• Il MOD (resto della divisione) [ % ]. Esempio: c = 9%4; � in c sarà memorizzato 1
Corso Java - Liceo Norberto Rosa 11
Operatori Logici
� I due operatori Logici principali sono • AND [ && ].
• OR [ || ].
• NOT [!]
� Ricordiamo qui la tabellina di verità degli operatori logici:
falsetruetruetruetrue
falsetruefalsefalsetrue
truetruefalsetruefalse
truefalsefalsefalsefalse
!A||&& BA
Corso Java - Liceo Norberto Rosa 12
String
� String identifica una qualsiasi sequenza di caratteri alfanumerici.
• Dichiarazione di una variabile di nome name di tipo String.
String name;
• Assegnazione del valore Marco alla variabile di nome name di tipo String.
name = “Marco”;
• Una sequenza alfanumerica racchiusa tra doppi apici [“] indica che la sequenza è un valore, mentre senza doppi apici la sequenza alfanumerica indica il nome di una variabile.
Corso Java - Liceo Norberto Rosa 13
Class
� La Classe è il costrutto principale del linguaggio è identifica il tipo Utente.
� La Classe implementa le entità reali o astratte, che determinano le dinamiche del problema risolto dal software, sotto forma di entitàunitarie, dotate di specifiche d'uso e di funzionamento definite a priori.
Es. Auto, Animale, Poligono, Contatto FB, …
� Le Classi definiscono le caratteristiche proprietà e comportamenti(metodi) di queste entità.
Corso Java - Liceo Norberto Rosa 14
Class
� Definizione di una classe di nome NomeClasse.
class NomeClasse{
}
In Java le parentesi graffe { } racchiudono un’insieme di istruzioni.
Corso Java - Liceo Norberto Rosa 15
Class – Proprietà
� La Proprietà identifica l’attributo di un’entità ( es. colore dell’entitàauto).
� In Java viene implementato attraverso la dichiarazione di una variabile definita a livello di classe.
visibilità [static ] type nomeVariabile;
visibilità : private visibile solo all’interno della classe;public visibile anche al di fuori della classe.
static : indica che la proprietà è statica.
type : predefinito o utente.
Corso Java - Liceo Norberto Rosa 16
Class – Proprietà
� Esempio: implementazione della Classe di nome FirstClass.
class FirstClass
{public static int Numero;
private static String Colore;}
Corso Java - Liceo Norberto Rosa 17
Class – Metodi
� Il metodo identifica un comportamento o azione di u n’entitàdefinito da un’insieme di istruzioni eseguite in modalità sequenziale.
� I metodi sono di tue tipologie: • La procedure non hanno alcun valore di ritorno ma agiscono solo
sulle proprietà della classe.
• La function ritorno un valore ( risultato).
� Il metodo è costituito da due sezioni:• Signature � la dichiarazione del metodo.
• Body �insieme di istruzioni, racchiuse tra { } ,che implementano il comportamento.
Corso Java - Liceo Norberto Rosa 18
Class – Metodi
• Signature � Visibilità [static] Type NomeMetodo (insieme di parametri)
• visibilità : private visibile solo all’interno della classe;public visibile anche al di fuori della classe.
• static : indica che la proprietà è statica.
• type : tipo (predefinito o utente) del valore restituito dal metodo. Se il metodo è una procedura il tipo di ritorno è void.
• NomeMetodo : stringa alfanumerica che identifica il nome del metodo.
• Parametri [opzionali]: insieme di variabili legati dalla virgola.
Corso Java - Liceo Norberto Rosa 19
Class – Metodi
� Esempio: implementazione della Classe di nome FirstClass.
class FirstClass{
public static int Numero;public static String Colore;
public static void Calcolo(int base, String nome){
// insieme di istruzioni java}
}
Corso Java - Liceo Norberto Rosa 20
Programma in Java
� In Java esistono diversi tipi di programmi, di natura diversa in base alle proprie finalità (desktop, console o java application, web, mobile,…).
� Un programma in Java è costituito da un’insieme di classi .
� In Java le classi sono racchiuse in Package .
� I Package hanno una struttura gerarchica ad albero.
� Alcune classi e i package di riferimento sono native del linguaggio messe a disposizione con la Java Virtual Machine.
Corso Java - Liceo Norberto Rosa 21
Java Application
� Il tipo più semplice di programma è detto Console Application o anche Java Application .
� In fase di sviluppo di un programma, in base al tipo di programma, si deve creare un Project (con Eclipse ) di riferimento.
� Per le Java Application si utilizza il Java Project .
� Nelle Java Application l’utente interagisce con il programma solo mediante la tastiera .
Corso Java - Liceo Norberto Rosa 22
E-clipse
� Eclipse è un ambiente di sviluppo integrato multi-linguaggioe multipiattaforma. Ideato da un consorzio di grandi societàquali Ericsson, HP, IBM, Intel, MontaVistaSoftware, QNX, SAP e Serena Software, chiamato Eclipse Foundation sullo stile dell'open source.
� E-clipse ingloba la JVM, permette quindi di:
• Implementare in codice sorgente in Java.
• Salvare ed eseguire i programmi java direttamente dall’ambiente di sviluppo.
Corso Java - Liceo Norberto Rosa 23
E-clipse
Albero deiPackage – Classidel Project di Riferimento
Toolbar – Funzionalità dell’Ambiente di sviluppo
Editor per lo sviluppo delle classi in Java
Corso Java - Liceo Norberto Rosa 24
E-clipse – Creazione di un Java Project
Corso Java - Liceo Norberto Rosa 25
E-clipse – Creazione di un Java Project
Corso Java - Liceo Norberto Rosa 26
E-clipse – Creazione di un Java Project
Sulla sinistra cliccando sulla freccia si apre l’abero del progetto con due folder:
1. src : il contenitore di tutti i package del progetto
2. Library : le classi messe a disposizione dalla JVM.
Corso Java - Liceo Norberto Rosa 27
E-clipse – Creazione di un Package
Sulla sinistra cliccando sulla freccia si apre l’abero del progetto con due folder:
1. src : il contenitore di tutti i package del progetto
2. Library : le classi messe a disposizione dalla JVM.
Tasto DX del mouse sul nodo src del project
Selezionare la voce del menù Package
Tasto DX del mouse sul nodo src del projectTasto DX del mouse sul nodo src del project
Selezionare la voce del menù Package
Corso Java - Liceo Norberto Rosa 28
E-clipse – Creazione di un Package
Sulla sinistra cliccando sulla freccia si apre l’abero del progetto con due folder:
1. src : il contenitore di tutti i package del progetto
2. Library : le classi messe a disposizione dalla JVM.
Tasto DX del mouse sul nodo src del project
Corso Java - Liceo Norberto Rosa 29
E-clipse – Creazione di una Classe
Tasto DX del mouse sul nodo del package
Selezionare la voce del menù Class
Corso Java - Liceo Norberto Rosa 30
E-clipse – Creazione di una
Classe
Tasto DX del mouse sul nodo del package
Selezionare la voce del menù Class
Corso Java - Liceo Norberto Rosa 31
E-clipse – Creazione di una
Classe
La nostra prima classe!
Corso Java - Liceo Norberto Rosa 32
Metodo Main
� Le Java Application hanno una ed una sola classe che contiene unmetodo standard chiamato main.
� Il metodo main è il metodo standard che esiste per tutte le java application, ed è il metodo da cui parte l’esecuzione della java application.
� Essendo un metodo standard, ossia deve riconoscibile da tutti i compilatori Java, ha una signature bene definita e non modificabile dall’utente.
Corso Java - Liceo Norberto Rosa 33
Metodo Main
System.out è una classe nativa della JVM la quale permette di stampare su
Console una stringa alfanumerica.
Corso Java - Liceo Norberto Rosa 34
Eclipse - Esecuzione di una Java App.
Start del Programma
Output del programma
Corso Java - Liceo Norberto Rosa 35
Implementazione della Classe Quadrato
� Implementare una classe di nome Quadrato la quale ha le seguenti caratteristiche:
• Una proprietà privata statica di tipo intera di nome Lato .
• Una proprietà privata statica di tipo intera di nome Area .
• Un metodo (function) privato statico di nome CalcoloPerimetro , con tipo di ritorno intero, senza parametri, il quale ritorna ilperimetro del quadrato.
• Un metodo (procedure) privato statico di nome CalcoloArea , con tipo di ritorno void, il quale calcola l’area del quadrato e inserisce il risultato nella proprietà Area.
Corso Java - Liceo Norberto Rosa 36
Implementazione della Classe Quadrato
Corso Java - Liceo Norberto Rosa 37
Implementazione della Classe Quadrato
Corso Java - Liceo Norberto Rosa 38
Implementazione della Classe Quadrato
Corso Java - Liceo Norberto Rosa 39
Implementazione della Classe Quadrato
Corso Java - Liceo Norberto Rosa 40
Richiamo di una Proprietà o Metodo
Statico
� L’operatore che permette di richiamare una proprietà (metodo) di una classe è il punto [.], inoltre per accedere si passa attraverso il nome della proprietà (o metodo) stesso.
• NomeClasse.NomeProprietà;
• NomeClasse.NomeMetodo( insieme dei valori per ogni parametro di riferimento);
Corso Java - Liceo Norberto Rosa 41
Implementazione della Classe
MainQuadrato
� Implementare una classe di nome MainQuadrato la quale ha il solo metodo main standard la quale:• Assegna il valore 5 alla proprietà Lato della classe
Quadrato.
• Richiama il metodo CalcoloPerimetro della classe Quadrato, il risultato lo associa ad una variabile locale di nome perimetro e stampa la variabile.
• Richiama il metodo CalcoloArea della classe Quadrato.
• Stampa la proprietà Area della classe Quadrato.
Corso Java - Liceo Norberto Rosa 42
Implementazione della Classe
MainQuadrato