Professional Documents
Culture Documents
JAVA: Introduzione
Caratteristiche di JAVA Introduzione al linguaggio Java: classi, oggetti Messaggi e metodi La classe String g
Il linguaggio JAVA
Java e un linguaggio di programmazione orientato e agli oggetti
Completamente a oggetti: tutto in Java un oggetto
Diverse analogie con il C++ E molto pi facile produrre un codice privo di bug
Non possibile allocare e deallocare memoria manualmente E stata introdotta una garbage collection E stata eliminata laritmetica dei puntatori Problema dellassegnazione in condizioni logiche E stata eliminata leredit multipla
02/07/2007
Caratteristiche di JAVA - 1
Semplice
La sintassi una versione ripulita di quella del C++
Nessun file header, aritmetica dei puntatori, ridefinizione degli operatori, ecc
A oggetti
Concetti OO simili al C++
Eliminata leriditariet multipla
Robusto
Consente di scrivere programmi molto affidabili
Caratteristiche di JAVA - 2
Distribuito
Ampia libreria per gestire i protocolli TCP/IP Facilit di creazione di script lato server e di comunicazione tra oggetti distribuiti
Sicuro
Java destinato allimpiego in ambienti client/server all impiego
Gli autori hanno dato grande enfasi alla sicurezza
Indipendente dallarchitettura
La compilazione genera un byte-code non codice eseguibile
Necessaria la Java Virtual Machine per eseguire il byte-code
02/07/2007
Caratteristiche di JAVA - 3
Portabile
Non sono previsti aspetti dipendenti dallimplementazione
Le dimensioni dei tipi di dati primitivi sono specifiche
Multithreaded
Possibilit di assegnare le operazioni a uno o pi thread
Possibilit di gestire sistemi multi-processore g p
Dinamico
Studiato per un ambiente in evoluzione
Facile espansione delle librerie
Caratteristiche dellOOP
Ogni cosa un oggetti g gg Un programma un insieme di oggetti che si ordinano reciprocamente che cosa fare (scambiandosi messaggi) Ogni oggetto possiede una memoria eventualmente composta da altri oggetti Ogni oggetto possiede un tipo Tutti gli oggetti dello stesso tipo possono ricevere gli stessi messaggi Un oggetto possiede uno stato, un comportamento e unidentit (Booch)
02/07/2007
Tutto in Java deve trovarsi in una classe Il nome di file del codice sorgente deve essere uguale al nome della classe pubblica
public class FirstSample { public static void main(String[] args) { System.out.println(Hello world!); } }
Parametri metodo main: Definizione della classe: Modificatore di accesso: Invio messaggio: rappresenta ci che lutente generalmente il nome della definisce chipu accedere il ricevente System.out classe inizia con lettera immette nella riga di il messaggio println al codice maiuscola comando
Oggetto
Istanza di una classe Gli oggetti di una stessa classe condividono gli stessi metodi
02/07/2007
La classe System
Rappresenta il sistema fisico (hardware) Comprende diversi attributi
InputStream in PrintStream out
02/07/2007
La classe PrintStream
Consente di inviare informazioni ad un dispositivo di output
Alcuni metodi
println() println(stringa) print(stringa)
System.out
Un riferimento ad un oggetto predefinito Istanza della classe PrintStream
Messaggi e metodi
Il comportamento di un oggetto attivato dalla ricezione di un messaggio Le classi determinano il comportamento degli oggetti definendo quali sono i messaggi leciti
I messaggi leciti sono definiti attraverso i metodi
U a se o e d cod ce a Una sezione di codice allinterno di una classe che implementa un parte o d u a c asse c e p e e ta u pa ticolare comportamento Sono individuati da un nome del metodo
02/07/2007
Esempio
Riferimento alloggetto Nome del metodo Argomenti
System.out.println(Hello world!);
Signature di un metodo
Signature
Identifica un metodo Data dal nome del metodo e dalla descrizione degli argomenti
Overloading
Possibilit di avere una classe che definisca metodi differenti con lo stesso nome
Diversa signature
Prototipo
Signature del metodo + la descrizione del valore ritornato
02/07/2007
Invio di un messaggio - 1
Processo
Esecuzione sequenziale fino a raggiungere unistruzione di invio di un messaggio Sospensione dellesecuzione del sender Invio del messaggio al receiver
Invocazione di uno dei metodi del receiver
Invio di un messaggio - 2
Processo Oggetto Sender
statement1 statement2 statement3 statement4 Receiver.message() statement6 statement7 statement8 statement9
Oggetto Receiver
statement1 statement2 statement3 t t t3 statement4 statement5
02/07/2007
La classe String
Classe predefinita che modella una stringa Il tipo stringa: sequenze di caratteri
Le stringhe in JAVA
Riferimento ad un oggetto di tipo String Ogni stringa racchiusa tra virgolette unistanza di String
String e = ; // Questa una stringa vuota
02/07/2007
Verifica delluguaglianza
Utilizzo del metodo equals della classe String
Applicabile sia a variabili sia a costanti Evoluzione: equalsIgnoreCase() q g () Attenzione programmatori C/C++
Non utilizzare == per luguaglianza tra stringhe
s.equals(t); s.equals(Hello); Hello.equals(s);
10
02/07/2007
Stringa vuota
Lunghezza 0 Nessun carattere Reference:
11
02/07/2007
Cascata di messaggi
s = w.concat(x).concat(y).concat(z)
Il mesaggio concat(x) inviato a w
Lespressione w.concat(x) fa riferimento alla stringa risultante w.concat(x)
abcdedgh abcdef abcd
Composizione di messaggi
s = w.concat(x.concat(y.concat(z)))
Il messaggio concat(z) inviato a y
y.concat(z) fa riferimento alla stringa risultante y.concat(z)
abcdedgh cdedgh edgh ggg
12
02/07/2007
Variabili e oggetti
Una variabile di riferimento si riferisce ad un solo ogog getto alla volta
Un oggetto pu essere referenziato da pi variabili simultaneamente
Propriet dellindipendenza
String s, t; s s = Mario; Mario t = s; t t = Rossi
oggetto String
Rossi
oggetto String
13
02/07/2007
14