Corso Java 2013 LiceoNorbertoRosa Bussoleno · Corso Java - Liceo Norberto Rosa 3 Un po’ di...

42
Corso Base Liceo Norberto Rosa – Bussoleno Prof. Angelo GIORGIO

Transcript of Corso Java 2013 LiceoNorbertoRosa Bussoleno · Corso Java - Liceo Norberto Rosa 3 Un po’ di...

Page 1: Corso Java 2013 LiceoNorbertoRosa Bussoleno · Corso Java - Liceo Norberto Rosa 3 Un po’ di Storia Java è stato creato a partire da ricerche effettuate alla Stanford University

Corso Base

Liceo Norberto Rosa – BussolenoProf. Angelo GIORGIO

Page 2: Corso Java 2013 LiceoNorbertoRosa Bussoleno · Corso Java - Liceo Norberto Rosa 3 Un po’ di Storia Java è stato creato a partire da ricerche effettuate alla Stanford University

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

Page 3: Corso Java 2013 LiceoNorbertoRosa Bussoleno · Corso Java - Liceo Norberto Rosa 3 Un po’ di Storia Java è stato creato a partire da ricerche effettuate alla Stanford University

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).

Page 4: Corso Java 2013 LiceoNorbertoRosa Bussoleno · Corso Java - Liceo Norberto Rosa 3 Un po’ di Storia Java è stato creato a partire da ricerche effettuate alla Stanford University

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.

Page 5: Corso Java 2013 LiceoNorbertoRosa Bussoleno · Corso Java - Liceo Norberto Rosa 3 Un po’ di Storia Java è stato creato a partire da ricerche effettuate alla Stanford University

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 .

Page 6: Corso Java 2013 LiceoNorbertoRosa Bussoleno · Corso Java - Liceo Norberto Rosa 3 Un po’ di Storia Java è stato creato a partire da ricerche effettuate alla Stanford University

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

Page 7: Corso Java 2013 LiceoNorbertoRosa Bussoleno · Corso Java - Liceo Norberto Rosa 3 Un po’ di Storia Java è stato creato a partire da ricerche effettuate alla Stanford University

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;

Page 8: Corso Java 2013 LiceoNorbertoRosa Bussoleno · Corso Java - Liceo Norberto Rosa 3 Un po’ di Storia Java è stato creato a partire da ricerche effettuate alla Stanford University

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

Page 9: Corso Java 2013 LiceoNorbertoRosa Bussoleno · Corso Java - Liceo Norberto Rosa 3 Un po’ di Storia Java è stato creato a partire da ricerche effettuate alla Stanford University

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

Page 10: Corso Java 2013 LiceoNorbertoRosa Bussoleno · Corso Java - Liceo Norberto Rosa 3 Un po’ di Storia Java è stato creato a partire da ricerche effettuate alla Stanford University

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

Page 11: Corso Java 2013 LiceoNorbertoRosa Bussoleno · Corso Java - Liceo Norberto Rosa 3 Un po’ di Storia Java è stato creato a partire da ricerche effettuate alla Stanford University

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

Page 12: Corso Java 2013 LiceoNorbertoRosa Bussoleno · Corso Java - Liceo Norberto Rosa 3 Un po’ di Storia Java è stato creato a partire da ricerche effettuate alla Stanford University

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.

Page 13: Corso Java 2013 LiceoNorbertoRosa Bussoleno · Corso Java - Liceo Norberto Rosa 3 Un po’ di Storia Java è stato creato a partire da ricerche effettuate alla Stanford University

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à.

Page 14: Corso Java 2013 LiceoNorbertoRosa Bussoleno · Corso Java - Liceo Norberto Rosa 3 Un po’ di Storia Java è stato creato a partire da ricerche effettuate alla Stanford University

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.

Page 15: Corso Java 2013 LiceoNorbertoRosa Bussoleno · Corso Java - Liceo Norberto Rosa 3 Un po’ di Storia Java è stato creato a partire da ricerche effettuate alla Stanford University

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.

Page 16: Corso Java 2013 LiceoNorbertoRosa Bussoleno · Corso Java - Liceo Norberto Rosa 3 Un po’ di Storia Java è stato creato a partire da ricerche effettuate alla Stanford University

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;}

Page 17: Corso Java 2013 LiceoNorbertoRosa Bussoleno · Corso Java - Liceo Norberto Rosa 3 Un po’ di Storia Java è stato creato a partire da ricerche effettuate alla Stanford University

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.

Page 18: Corso Java 2013 LiceoNorbertoRosa Bussoleno · Corso Java - Liceo Norberto Rosa 3 Un po’ di Storia Java è stato creato a partire da ricerche effettuate alla Stanford University

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.

Page 19: Corso Java 2013 LiceoNorbertoRosa Bussoleno · Corso Java - Liceo Norberto Rosa 3 Un po’ di Storia Java è stato creato a partire da ricerche effettuate alla Stanford University

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}

}

Page 20: Corso Java 2013 LiceoNorbertoRosa Bussoleno · Corso Java - Liceo Norberto Rosa 3 Un po’ di Storia Java è stato creato a partire da ricerche effettuate alla Stanford University

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.

Page 21: Corso Java 2013 LiceoNorbertoRosa Bussoleno · Corso Java - Liceo Norberto Rosa 3 Un po’ di Storia Java è stato creato a partire da ricerche effettuate alla Stanford University

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 .

Page 22: Corso Java 2013 LiceoNorbertoRosa Bussoleno · Corso Java - Liceo Norberto Rosa 3 Un po’ di Storia Java è stato creato a partire da ricerche effettuate alla Stanford University

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.

Page 23: Corso Java 2013 LiceoNorbertoRosa Bussoleno · Corso Java - Liceo Norberto Rosa 3 Un po’ di Storia Java è stato creato a partire da ricerche effettuate alla Stanford University

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

Page 24: Corso Java 2013 LiceoNorbertoRosa Bussoleno · Corso Java - Liceo Norberto Rosa 3 Un po’ di Storia Java è stato creato a partire da ricerche effettuate alla Stanford University

Corso Java - Liceo Norberto Rosa 24

E-clipse – Creazione di un Java Project

Page 25: Corso Java 2013 LiceoNorbertoRosa Bussoleno · Corso Java - Liceo Norberto Rosa 3 Un po’ di Storia Java è stato creato a partire da ricerche effettuate alla Stanford University

Corso Java - Liceo Norberto Rosa 25

E-clipse – Creazione di un Java Project

Page 26: Corso Java 2013 LiceoNorbertoRosa Bussoleno · Corso Java - Liceo Norberto Rosa 3 Un po’ di Storia Java è stato creato a partire da ricerche effettuate alla Stanford University

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.

Page 27: Corso Java 2013 LiceoNorbertoRosa Bussoleno · Corso Java - Liceo Norberto Rosa 3 Un po’ di Storia Java è stato creato a partire da ricerche effettuate alla Stanford University

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

Page 28: Corso Java 2013 LiceoNorbertoRosa Bussoleno · Corso Java - Liceo Norberto Rosa 3 Un po’ di Storia Java è stato creato a partire da ricerche effettuate alla Stanford University

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

Page 29: Corso Java 2013 LiceoNorbertoRosa Bussoleno · Corso Java - Liceo Norberto Rosa 3 Un po’ di Storia Java è stato creato a partire da ricerche effettuate alla Stanford University

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

Page 30: Corso Java 2013 LiceoNorbertoRosa Bussoleno · Corso Java - Liceo Norberto Rosa 3 Un po’ di Storia Java è stato creato a partire da ricerche effettuate alla Stanford University

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

Page 31: Corso Java 2013 LiceoNorbertoRosa Bussoleno · Corso Java - Liceo Norberto Rosa 3 Un po’ di Storia Java è stato creato a partire da ricerche effettuate alla Stanford University

Corso Java - Liceo Norberto Rosa 31

E-clipse – Creazione di una

Classe

La nostra prima classe!

Page 32: Corso Java 2013 LiceoNorbertoRosa Bussoleno · Corso Java - Liceo Norberto Rosa 3 Un po’ di Storia Java è stato creato a partire da ricerche effettuate alla Stanford University

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.

Page 33: Corso Java 2013 LiceoNorbertoRosa Bussoleno · Corso Java - Liceo Norberto Rosa 3 Un po’ di Storia Java è stato creato a partire da ricerche effettuate alla Stanford University

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.

Page 34: Corso Java 2013 LiceoNorbertoRosa Bussoleno · Corso Java - Liceo Norberto Rosa 3 Un po’ di Storia Java è stato creato a partire da ricerche effettuate alla Stanford University

Corso Java - Liceo Norberto Rosa 34

Eclipse - Esecuzione di una Java App.

Start del Programma

Output del programma

Page 35: Corso Java 2013 LiceoNorbertoRosa Bussoleno · Corso Java - Liceo Norberto Rosa 3 Un po’ di Storia Java è stato creato a partire da ricerche effettuate alla Stanford University

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.

Page 36: Corso Java 2013 LiceoNorbertoRosa Bussoleno · Corso Java - Liceo Norberto Rosa 3 Un po’ di Storia Java è stato creato a partire da ricerche effettuate alla Stanford University

Corso Java - Liceo Norberto Rosa 36

Implementazione della Classe Quadrato

Page 37: Corso Java 2013 LiceoNorbertoRosa Bussoleno · Corso Java - Liceo Norberto Rosa 3 Un po’ di Storia Java è stato creato a partire da ricerche effettuate alla Stanford University

Corso Java - Liceo Norberto Rosa 37

Implementazione della Classe Quadrato

Page 38: Corso Java 2013 LiceoNorbertoRosa Bussoleno · Corso Java - Liceo Norberto Rosa 3 Un po’ di Storia Java è stato creato a partire da ricerche effettuate alla Stanford University

Corso Java - Liceo Norberto Rosa 38

Implementazione della Classe Quadrato

Page 39: Corso Java 2013 LiceoNorbertoRosa Bussoleno · Corso Java - Liceo Norberto Rosa 3 Un po’ di Storia Java è stato creato a partire da ricerche effettuate alla Stanford University

Corso Java - Liceo Norberto Rosa 39

Implementazione della Classe Quadrato

Page 40: Corso Java 2013 LiceoNorbertoRosa Bussoleno · Corso Java - Liceo Norberto Rosa 3 Un po’ di Storia Java è stato creato a partire da ricerche effettuate alla Stanford University

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);

Page 41: Corso Java 2013 LiceoNorbertoRosa Bussoleno · Corso Java - Liceo Norberto Rosa 3 Un po’ di Storia Java è stato creato a partire da ricerche effettuate alla Stanford University

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.

Page 42: Corso Java 2013 LiceoNorbertoRosa Bussoleno · Corso Java - Liceo Norberto Rosa 3 Un po’ di Storia Java è stato creato a partire da ricerche effettuate alla Stanford University

Corso Java - Liceo Norberto Rosa 42

Implementazione della Classe

MainQuadrato