Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
- Slides: 64
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 06 Programmazione Java Alfonso Miola Ottobre 2012 http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 1
Contenuti q Il linguaggio Java q Applicazioni Java e il metodo main q Esempi di applicazioni § Scrittore sullo schermo § Radice quadrata q Esempi di classi e oggetti Java § Gli oggetti String, i loro metodi e le possibili applicazioni http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 2
Prerequisiti Questo capitolo presuppone la conoscenza degli argomenti già trattati nelle precedenti lezioni di questo corso e riportati nelle rispettive dispense, con particolare riferimento al capitolo 1 e al capitolo 2 del libro di testo http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 3
Il linguaggio di programmazione Java q Java è § un linguaggio di programmazione • un linguaggio di programmazione orientato agli oggetti § indipendente dalla piattaforma • realizzato per tipi diversi di calcolatori – write once, run everywhere § realizzato per le reti di calcolatori • supportato dai principali browser Web • sviluppato dalla Sun Microsystems, e rilasciato nel 1995 http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 4
Java è un linguaggio di programmazione q Ogni linguaggio di programmazione, e quindi anche Java, è caratterizzato da: § la sintassi - l’insieme delle regole grammaticali per scrivere i programmi con quel linguaggio § la semantica - l’insieme delle regole che stabiliscono il significato dei programmi, ovvero il modo in cui i programmi devono essere interpretati ed eseguiti dal calcolatore Una successiva dispensa tratterà questi argomenti in dettaglio http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 5
Java è orientato agli oggetti. . . q Nel paradigma di programmazione orientato agli oggetti § l’esecuzione di un programma consiste nella cooperazione di un insieme di oggetti § un programma è la descrizione di un insieme di oggetti q Il progetto (la descrizione) di un oggetto è definito da una classe http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 6
. . . Java è orientato agli oggetti q In Java, l’unità fondamentale di programmazione è la classe § Java permette di definire classi § una classe può essere il progetto di un singolo oggetto (un oggetto classe) o di oggetti (oggetti istanza) di una certa tipologia § una classe implementa il comportamento e lo stato di una certa tipologia di oggetti • le operazioni sono implementate da metodi • le proprietà sono rappresentate da variabili http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 7
Programmi Java q In Java, ogni programma è un oggetto: esistono due tipi di programmi Java § applicazioni Java • un programma a sé stante, che viene eseguito da un interprete Java, chiamato macchina virtuale Java (o JVM, Java Virtual Machine) § applet Java • un programma immerso in una pagina web, che viene eseguito dalla JVM di un browser web q Un programma Java consiste nella definizione di un insieme di classi § una classe che modella il programma (applicazione) § una classe per ciascuna tipologia di oggetti necessari per l’esecuzione del programma http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 8
Applicazioni Java q Una applicazione è una classe applicazione § che definisce un oggetto classe e che sa eseguire esclusivamente l’operazione speciale main q In una applicazione Java § l’applicazione è rappresentata da un oggetto classe § l’utente dell’applicazione può interagire solo con alcuni degli oggetti coinvolti dall’applicazione § l’utente dell’applicazione può sicuramente interagire con l’oggetto classe che rappresenta l’applicazione § l’utente dell’applicazione può richiedere all’oggetto classe che rappresenta l’applicazione solo di eseguire l’operazione speciale main http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 9
API di Java. . . q L’ambiente di sviluppo per Java è corredato da un numeroso insieme di classi e oggetti predefiniti - le API (Application Programming Interface) di Java § le API sono in insieme di elementi standard di programmazione per la gestione di aspetti applicativi di carattere generale — input-output, stringhe, grafica, . . . • le classi delle API sono raggruppate in “librerie” — chiamate package http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 10
. . . API di Java q Le API rappresentano quindi un supporto al programmatore che gli permettono di concentrarsi sullo sviluppo di classi e oggetti relativi alle applicazioni di interesse q Gli oggetti e le classi delle API di Java possono essere utilizzati conoscendone l’interfaccia § l’interfaccia degli elementi delle API di Java è documentata da un insieme di pagine web disponibile al programmatore http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 11
Programmazione in Java. . . q La programmazione in Java coinvolge i seguenti aspetti § conoscenza del linguaggio Java • ovvero, conoscenza della sintassi e della semantica di Java § uso di oggetti e classi predefiniti (ad esempio, definiti nelle API di Java o in altri package a disposizione) di cui si conoscano le interfacce § definizione di nuove classi Java • per implementare programmi, oggetti classe o tipologie di oggetti istanza necessari alla soluzione del problema http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 12
. . . Programmazione in Java q Viene ora mostrata una panoramica sulla programmazione in Java q Come nell’apprendimento dei linguaggi naturali anche qui si incomincia imparando a “leggere” § viene mostrato come leggere alcuni programmi Java, di complessità via crescente q Solo successivamente impareremo a “scrivere” e quindi a. . . “parlare Java” § alla progettazione e scrittura di programmi Java sono dedicati molti dei successivi capitoli http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 13
Scrittore sullo schermo q Si vuole scrivere una applicazione Java che visualizza sullo schermo le seguenti frasi Questo corso introduce i concetti di base dell'informatica q Più precisamente, si vuole definire una classe che è il progetto di un oggetto classe che § è una classe applicazione § sa eseguire una operazione il cui effetto è quello di visualizzare quelle tre frasi sullo schermo http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 14
System. out q L’applicazione ha bisogno di visualizzare una frase sullo schermo § l’applicazione può utilizzare l’oggetto System. out • println(String frase) § System. out è un oggetto definito dalle API di Java § System. out modella lo schermo del calcolatore § System. out sa eseguire una operazione println che visualizza una frase (che è il parametro dell’operazione) http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 15
L’applicazione Scrittore. Sullo. Schermo /* Applicazione che visualizza una frase sullo schermo. */ class Scrittore. Sullo. Schermo { public static void main(String[] args) { System. out. println("Questo corso"); System. out. println("introduce i concetti di"); System. out. println(“base dell'informatica"); } } http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 16
Scrittore. Sullo. Schermo è una classe /* Applicazione che visualizza una frase sullo schermo. */ class Scrittore. Sullo. Schermo { public static void main(String[] args) { System. out. println("Questo corso"); System. out. println("introduce i concetti di"); System. out. println(“base dell'informatica"); } } q La definizione di una classe • è introdotta dalla parola class • è seguita dal nome della classe — Scrittore. Sullo. Schermo q La classe Scrittore. Sullo. Schermo è una classe applicazione e quindi è una classe statica http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 17
Commenti /* Applicazione che visualizza una frase sullo schermo. */ class Scrittore. Sullo. Schermo { public static void main(String[] args) { System. out. println("Questo corso"); System. out. println("introduce i concetti di"); System. out. println(“base dell'informatica"); } } q La frase delimitata da /* e */ è un commento § i commenti non sono operazioni e quindi non hanno nessuna influenza sul significato dei programmi - ma sono molto utili per documentare i programmi – quindi più ce ne sono e meglio è ! http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 18
Definizione di una classe /* Applicazione che visualizza una frase sullo schermo. */ class Scrittore. Sullo. Schermo { public static void main(String[] args) { System. out. println("Questo corso"); System. out. println("introduce i concetti di"); System. out. println(“base dell'informatica"); } } q I dettagli della definizione di una classe sono chiamati il corpo della classe § il corpo della classe è delimitato da parentesi graffe { e } ed è scritto dopo il nome della classe http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 19
Corpo della classe /* Applicazione che visualizza una frase sullo schermo. */ class Scrittore. Sullo. Schermo { public static void main(String[] args) { System. out. println("Questo corso"); System. out. println("introduce i concetti di"); System. out. println("base dell'informatica"); } } q Il corpo della definizione di una classe contiene, tra le altre cose, i metodi della classe per implementare le operazioni q La classe Scrittore. Sullo. Schermo definisce un unico metodo - di nome main - che è un metodo speciale : è l’unica operazione la cui esecuzione può essere richiesta dall’utente di una classe applicazione http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 20
Il metodo main. . . /* Applicazione che visualizza una frase sullo schermo. */ class Scrittore. Sullo. Schermo { public static void main(String[] args) { System. out. println("Questo corso"); System. out. println("introduce i concetti di"); System. out. println("base dell'informatica"); } } q Nella definizione di un metodo § c’è il nome del metodo — main § ci sono alcune parole (misteriose, per ora) che precedono e che seguono il nome del metodo • ad esempio, la parola static indica che il metodo è un metodo di classe § i dettagli della definizione di un metodo sono chiamati il corpo del metodo e sono delimitati da parentesi graffe { e } http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 21
. . . Il metodo main /* Applicazione che visualizza una frase sullo schermo. */ class Scrittore. Sullo. Schermo { public static void main(String[] args) { System. out. println("Questo corso"); System. out. println("introduce i concetti di"); System. out. println("base dell'informatica"); } } q Il corpo del metodo main § è composto da un blocco che è una sequenza di istruzioni, separate da punto e virgola ; e delimitata da parentesi graffe {e} § ciascuna istruzione del metodo specifica una azione che l’oggetto Scrittore. Sullo. Schermo deve svolgere § quando l’oggetto Scrittore. Sullo. Schermo riceve il messaggio main(. . . ), deve eseguire il metodo main, ovvero deve eseguire le istruzioni scritte nel corpo del metodo main http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 22
Istruzioni System. out. println("Questo corso"); System. out. println("introduce i concetti di"); System. out. println("base dell'informatica"); q Le tre istruzioni nel corpo del metodo main hanno una struttura simile § ad esempio, nella prima istruzione • System. out è il nome dell’oggetto (predefinito) che modella lo schermo del calcolatore • println("Questo corso") è il messaggio che si vuole inviare a System. out • il punto, il punto e virgola, le parentesi e le virgolette hanno il ruolo di separare le varie parti dell’istruzione § ciascuna di queste tre istruzioni è una istruzione di invio di un messaggio a un oggetto (o invocazione di metodo) http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 23
Esecuzione di istruzioni e azioni System. out. println("Questo corso"); . . . q L’esecuzione di una istruzione consiste nello svolgimento di una o più azioni da parte dell’oggetto che esegue l’istruzione § ad esempio, l’esecuzione della prima istruzione consiste nell’invio del messaggio println("Questo corso") dall’oggetto che esegue l’istruzione (Scrittore. Sullo. Schermo) all’oggetto System. out § in corrispondenza della ricezione di questo messaggio, l’oggetto System. out (lo schermo) visualizza la frase Questo corso su se stesso http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 24
Esecuzione di un metodo q L’esecuzione di un metodo consiste nell’esecuzione delle istruzioni scritte nel corpo del metodo, una alla volta e in sequenza q Quindi, l’esecuzione del metodo main consiste nell’invio, all’oggetto System. out, di tre messaggi, in sequenza § in corrispondenza alla ricezione dei tre messaggi, lo schermo System. out visualizzerà successivamente su se stesso le tre frasi Questo corso introduce i concetti di base dell’informatica http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 25
Interazione fra oggetti «applicazione» Scrittore. Sullo. Schermo • println(String frase) • main(. . . ) 1: main(. . . ) questa icona rappresenta l’utente del programma System. out 1. 1: println("Questo corso") 1. 2: println("introduce i concetti di") 1. 3: println("base dell'informatica") q Questo “Diagramma di collaborazione”, nel linguaggio UML, descrive i messaggi scambiati quando un utente richiede al calcolatore di eseguire l’applicazione Scrittore. Sullo. Schermo http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 26
Esercizio q Commentare la definizione della seguente classe /* Applicazione che visualizza sullo schermo * la poesia Mattino di Giuseppe Ungaretti. */ class Mattino { public static void main(String[] args) { System. out. println("M'illumino"); System. out. println("d'immenso"); } } http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 27
Esercizio q Ora che abbiamo imparato a leggere proviamo anche a “scrivere” in Java ! q Una lunga tradizione vuole che il primo programma scritto da un programmatore sia quello che visualizza sullo schermo la frase Hello, world (che significa “Ciao, mondo”) q Definire l’applicazione Java Ciao. Mondo che visualizza sullo schermo la frase Hello, world Ovviamente possiamo anche scrivere altro a piacere http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 28
Errori di programmazione q Durante la scrittura di classi è possibile commettere degli errori di programmazione – ad esempio § la frase scritta non è corretta nel linguaggio di programmazione (errori grammaticali) § la frase scritta è corretta nel linguaggio di programmazione, ma il suo significato è diverso da quanto ci si era prefissi (errori non grammaticali) q Va inoltre osservato che § l’individuazione degli errori grammaticali è solitamente supportata dagli strumenti di programmazione (in particolare, dal compilatore) § viceversa, l’individuazione degli errori non grammaticali non è supportata dagli strumenti di programmazione, ed è quindi necessario ricorrere a opportune metodologie http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 29
Esempi di errori possibili /* Applicazione che visualizza sullo * schermo la poesia Mattino * di Giuseppe Ungaretti. */ Class Mattino { public static viod Main(String[] args) { System. out. println("M'illumino“]; System. out. Println("di mmenso"); } } http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 30
Errori comuni q Alcuni possibili errori di programmazione • omissione o uso errato della punteggiatura – ad esempio, omettere i punti e virgola — sono solitamente errori grammaticali, ma non sempre • uso errato delle parentesi – ad esempio, dimenticare di chiudere una parentesi graffa • uso errato delle lettere maiuscole e minuscole – ad esempio, scrivere Class anziché class (errore grammaticale) — oppure Main anziché main (errore non grammaticale) • errori di battitura – ad esempio, scrivere viod anziché void • dimenticare parole • inserire spazi erronei – ad esempio, scrivere Scrittore Sullo Schermo • invertire l’ordine delle parole o delle istruzioni http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 31
Calcolo di una radice quadrata q Si vuole scrivere una applicazione Java che calcola e visualizza la radice quadrata di 144 § l’esecuzione di questo programma dovrà visualizzare sullo schermo il numero 12 q L’applicazione farà uso della classe Math, per calcolare la radice quadrata e della classe System. out per la visualizzazione del risultato q Math, come System. out e altre classi e oggetti, è un oggetto predefinito nelle API (Application Programming Interface) di Java http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 32
L’applicazione Radice. Quadrata /* Applicazione che calcola e * visualizza sullo schermo * la radice quadrata di 144. */ class Radice. Quadrata { public static void main(String[] args) { double radice; radice = Math. sqrt(144); System. out. println(radice); } } Commentare questa applicazione http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 33
Diagramma di collaborazione per Radice. Quadrata 1. 1: radice = sqrt(144) 1: main(…) «applicazione» Radice. Quadrata Math double sqrt(double n) main(. . . ) 1. 2: println(radice) System. out println(double x) Commentare questo diagramma http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 34
Stringhe e oggetti String q Una stringa è una sequenza finita di caratteri § le stringhe sono un tipo di dati di uso molto comune – consentono di rappresentare informazioni testuali e descrittive q Java supporta la gestione di stringhe attraverso la classe String del package java. lang § un oggetto String rappresenta una sequenza finita di caratteri dell’alfabeto Unicode § gli oggetti String sanno eseguire operazioni utili per la loro gestione facenti parte dell’interfaccia della classe http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 35
Stringhe e oggetti String q Il valore (o contenuto) di un oggetto String è la stringa rappresentata da quell’oggetto § ad esempio, il letterale "calcolatore" è un nome, cioè denota un oggetto String, il cui valore (stato) è la stringa calcolatore "calcolatore" : String calcolatore http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 36
Letterali stringa q Un letterale String è una stringa racchiusa tra doppi apici " e " § ad esempio, "calcolatore" § il valore di un letterale String è la stringa racchiusa tra apici (apici esclusi) § l’uso di un letterale String è equivalente alla creazione di un oggetto di tipo String § un letterale String è una espressione di tipo String • vedremo che ogni letterale e ogni espressione ha un tipo così come tutte le altre componenti linguistiche Java § ad esempio, "calcolatore" è il nome, cioè il riferimento, di un oggetto di tipo String che ha come valore la stringa calcolatore http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 37
Variabili e tipi q Come già detto ad ogni variabile deve essere associato un tipo con una apposita istruzione § Ad esempio per assegnare il tipo dei numeri reali ad una variabile di nome radice si usa la seguente espressione double radice q Il tipo double è uno dei tipi primitivi di Java § esso è già predefinito in Java § una variabile di tipo primitivo memorizza un valore § una variabile di tipo double memorizza un valore numero reale q Esistono anche i tipi riferimento § ogni classe definisce un tipo riferimento § una variabile può essere di tipo riferimento e non memorizza un valore ma un riferimento ad un oggetto della classe http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 38
Uso di variabili riferimento q Essendo String il nome di una classe, è possibile dichiarare variabili di tipo String § si tratta di variabili riferimento cioè di variabili che permettono di memorizzare il riferimento a un oggetto ma non il valore dell’oggetto – che è memorizzato in un’altra area di memoria String stagione; stagione = "estate"; System. out. println(stagione); // visualizza estate stagione "estate" : String http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 39
Variabili riferimento e assegnazioni q Se a una variabile riferimento (che referenzia già un oggetto A) viene assegnato il riferimento a un altro oggetto B • il riferimento all’oggetto A memorizzato dalla variabile viene sostituito dal riferimento all’oggetto B e l’oggetto A continua ad esistere String stagione; stagione = "estate"; stagione = "inverno"; stagione "estate" : String "inverno" : String http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 40
Un oggetto può essere referenziato da più variabili q È possibile che un oggetto sia contemporaneamente referenziato da più variabili String s, t; s = "estate"; t = s; // copia in t il riferimento memorizzato da s s "estate" : String t String http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 41
Le variabili sono indipendenti q Le variabili sono indipendenti § una assegnazione a una variabile modifica il valore di una sola variabile String s, t; s = "estate"; t = s; // copia in t il riferimento memorizzato da s t = "inverno"; s "estate" : String t "inverno" : String http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 42
Gli oggetti String sono immutabili q Un oggetto String rappresenta una stringa costante, immutabile § dopo la creazione, il valore di un oggetto String non può essere modificato § l’unico modo di interagire con un oggetto String è mediante i metodi della classe String § nessun metodo della classe String modifica l’oggetto su cui il metodo viene invocato http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 43
Uso di oggetti String q Che cosa è un oggetto String? § dal punto di vista del contenuto informativo, un oggetto String rappresenta una stringa § dal punto di vista comportamentale, un oggetto String è un oggetto che sa eseguire un certo numero di operazioni per la manipolazione di se stesso q La classe String è usata per rappresentare il tipo delle stringhe • un insieme di elementi — le stringhe • un insieme di operazioni, per la manipolazione degli elementi di un tale insieme http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 44
Il metodo int length() q Il metodo int length() della classe String § calcola la lunghezza della stringa § la lunghezza di una stringa è il numero di caratteri della sequenza che costituisce la stringa q Ad esempio, l’espressione "automobile". length() vale 10 http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 45
La stringa vuota q Una stringa vuota è una sequenza vuota di caratteri § la stringa vuota è un oggetto String di lunghezza zero § la stringa vuota è denotata dal letterale "“ § l’espressione "". length() vale 0 http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 46
Il metodo String concat(String x) q La concatenazione è l’operazione che a partire da due stringhe S e T calcola una nuova stringa il cui valore è dato dalla sequenza di caratteri di S seguita dalla sequenza di caratteri di T § il metodo String concat(String x) della classe String implementa l’operazione di concatenazione di stringhe § crea e restituisce un nuovo oggetto String composto dai caratteri della stringa su cui il metodo viene invocato seguiti dai caratteri della stringa argomento x q Ad esempio. . . http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 47
Concatenazione di stringhe String s, t, u; s = "auto"; t = "mobile"; s "auto" : String t "mobile" : String u = s. concat(t); // u vale (referenzia) "automobile" u "automobile" : String http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 48
Posizione dei caratteri in una stringa q Le posizioni dei caratteri di una stringa sono numerate da sinistra verso destra § il carattere più a sinistra (il primo) ha posizione 0 § in una stringa composta da N caratteri, il carattere più a destra (l’ultimo) ha posizione N – 1 a u t o m o b i l e 0 1 2 3 4 5 6 7 8 9 § in generale, l’i-esimo carattere di una stringa occupa la posizione i– 1 http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 49
Il metodo String substring(int inizio, int fine) q Il metodo String substring(int inizio, int fine) della classe String § (crea e) restituisce un nuovo oggetto String composto dai caratteri della stringa su cui il metodo è stato invocato che occupano le posizioni tra inizio (inclusa) e fine (esclusa) • detto in altro modo, la stringa restituita comprende i caratteri tra le posizioni inizio e fine– 1 (estremi inclusi) • ad esempio String s, t; s = "automobile"; t = s. substring(2, 6); // t vale "tomo" http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 50
Il metodo String substring(int inizio) q Il metodo String substring(int inizio) della classe String § (crea e) restituisce un nuovo oggetto String che consiste dei caratteri della stringa su cui il metodo viene invocato compresi tra quello di posizione inizio e l’ultimo carattere della stringa (incluso) § ad esempio String s, t; s = "automobile"; t = s. substring(4); // t vale "mobile" http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 51
Pre-condizioni delle operazioni substring q I metodi substring sono soggetti alle seguenti pre-condizioni • inizio deve essere maggiore o uguale a zero e minore o uguale alla lunghezza della stringa • fine deve essere minore o uguale alla lunghezza della stringa • inizio deve essere minore o uguale a fine q In caso di violazione delle pre-condizioni viene generato un errore al tempo di esecuzione di tipo § Index. Out. Of. Bounds. Exception • ovvero di tipo indice fuori dai limiti http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 52
Esercizio Cosa visualizza questa applivazione ? public class JFK { public static void main(String[] args) { String first = "John"; String middle = "Fitzgerald"; String last = "Kennedy"; String initials; String first. Init, middle. Init, last. Init; first. Init = first. substring(0, 1); middle. Init = middle. substring(0, 1); last. Init = last. substring(0, 1); initials = first. Init. concat(middle. Init); initials = initials. concat(last. Init); System. out. println(initials); } } http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 53
Altri metodi della classe String q La classe String ha molti metodi, consideriamone ora alcuni altri, altri ancora ne vedremo più avanti § String to. Upper. Case() • per convertire tutti i caratteri di una stringa in MAIUSCOLE • ad esempio "Java". to. Upper. Case() costruisce la stringa di valore JAVA § String to. Lower. Case() • per convertire tutti i caratteri di una stringa in minuscole • ad esempio "Java". to. Lower. Case() costruisce la stringa di valore java http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 54
Esempio: Maiuscole. Minuscole public class Upper. Lower. Case { public static void main(String[] args) { String s, upper, lower; s = "Hello"; upper = s. to. Upper. Case(); lower = s. to. Lower. Case(); System. out. println(s); System. out. print("upper = "); System. out. println(upper); System. out. print("lower = "); System. out. println(lower); } } Questo programma costruisce 3 stringhe distinte (che non vengono più modificate): la stringa "Hello" iniziale, la stringa "HELLO" denotata attraverso upper, e la stringa "hello" denotata da lower http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 55
Riepilogo della dispensa q Cosa è un programma Java q Cosa è una applicazione Java q Cosa è il metodo main q Alcuni primi esempi di applicazioni Java § Scrittore sullo schermo § Radice quadrata q Alcuni primi esempi di classi e oggetti § Gli oggetti String con alcuni metodi e le loro possibili applicazioni Le successive diapositive sintetizzano quanto visto http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 56
Programmi Java q In Java, ogni programma è un oggetto: esistono due tipi di programmi Java § applicazioni Java • un programma a sé stante, che viene eseguito da un interprete Java, chiamato macchina virtuale Java (o JVM, Java Virtual Machine) § applet Java • un programma immerso in una pagina web, che viene eseguito dalla JVM di un browser web q Un programma Java consiste nella definizione di un insieme di classi § una classe che modella il programma (applicazione) § una classe per ciascuna tipologia di oggetti necessari per l’esecuzione del programma http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 57
Applicazioni Java q Una applicazione è una classe applicazione § che definisce un oggetto classe e che sa eseguire esclusivamente l’operazione speciale main q In una applicazione Java § l’applicazione è rappresentata da un oggetto classe § l’utente dell’applicazione può interagire solo con alcuni degli oggetti coinvolti dall’applicazione § l’utente dell’applicazione può sicuramente interagire con l’oggetto classe che rappresenta l’applicazione § l’utente dell’applicazione può richiedere all’oggetto classe che rappresenta l’applicazione solo di eseguire l’operazione speciale main http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 58
L’applicazione Scrittore. Sullo. Schermo /* Applicazione che visualizza una frase sullo schermo. */ class Scrittore. Sullo. Schermo { public static void main(String[] args) { System. out. println("Questo corso"); System. out. println("introduce i concetti di"); System. out. println(“base dell'informatica"); } } http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 59
Il metodo main /* Applicazione che visualizza una frase sullo schermo. */ class Scrittore. Sullo. Schermo { public static void main(String[] args) { System. out. println("Questo corso"); System. out. println("introduce i concetti di"); System. out. println("base dell'informatica"); } } q Il corpo della definizione di una classe contiene, tra le altre cose, i metodi della classe per implementare le operazioni q La classe Scrittore. Sullo. Schermo definisce un unico metodo - di nome main - che è un metodo speciale : è l’unica operazione la cui esecuzione può essere richiesta dall’utente di una classe applicazione http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 60
L’applicazione Radice. Quadrata /* Applicazione che calcola e * visualizza sullo schermo * la radice quadrata di 144. */ class Radice. Quadrata { public static void main(String[] args) { double radice; radice = Math. sqrt(144); System. out. println(radice); } } http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 61
Stringhe e oggetti String q Una stringa è una sequenza finita di caratteri § le stringhe sono un tipo di dati di uso molto comune – consentono di rappresentare informazioni testuali e descrittive q Java supporta la gestione di stringhe attraverso la classe String del package java. lang § un oggetto String rappresenta una sequenza finita di caratteri dell’alfabeto Unicode § gli oggetti String sanno eseguire operazioni utili per la loro gestione facenti parte dell’interfaccia della classe http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 62
Metodi della classe String q La classe String ha, tra gli altri, i seguenti metodi § int length() § String concat(String x) § String substring(int inizio, int fine) § String substring(int inizio) § String to. Upper. Case() § String to. Lower. Case() http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 63
Riferimenti al libro di testo q Per lo studio di questi argomenti si fa riferimento al libro di testo, e in particolare ai capitoli § § 3 su Oggetti e Java 7 su Leggibilità 9 su Variabili e assegnazione 12 sulle Stringhe q In questa lezione abbiamo omesso gli argomenti trattati nei seguenti paragrafi § § 3. 2. 3 – Perimetro di un triangolo 3. 2. 4 – Lettura e somma di due numeri interi 3. 2. 6 – Una classe per istanziare oggetti Dal 12. 5 al 12. 10 • Li vedremo tutti più avanti § 3. 2. 5 – Robot in un labirinto • Che invece non farà parte del programma d’esame http: //www. dia. uniroma 3. it/~java/fondinf/ Programmazione Java 64
- Presidente corso di laurea
- Language acquisition and language learning
- Giovanni danese
- Fondamenti di informatica 2
- Fondamenti di informatica 2
- Laurea specialistica informatica
- Laurea specialistica informatica
- Ingegneria informatica pisa
- Ingegneria dell'informazione informatica e statistica
- Giddens fondamenti di sociologia
- Naturalismo francese e verismo italiano
- Fondamenti di automatica unife
- Fondamenti biogenetici
- Fondamenti di misure
- Fondamenti di automatica benvenuti
- Crisi dei fondamenti
- Fondamenti di astronomia
- Pedagogia generale slide
- Fondamenti di chimica organica smith usato
- Componenti principali di un computer
- Cruciverba laurea esempio
- Erkki saari
- Enpam riscatto laurea
- Laurea finna
- Unito domanda laurea
- Laurea finna
- L-39 laurea
- Base laurea
- Motivaatiolomake
- Opiskelijahaku
- Paraortico
- Laurea magistrale in editoria e giornalismo
- Tiina ranta laurea
- Merkonomista tradenomiksi
- Calcolo voto laurea unisalento
- Giovanni ianniruberto
- Ingegneria sicurezza antincendio
- Ingegneria energetica bari
- Callister scienza e ingegneria dei materiali
- Tesi ingegneria del software
- Ingegneria dei materiali
- Tal inglese unipd
- Facoltà ingegneria trento
- Ingegneria machine tools
- Scuola di ingegneria e architettura bologna
- Piano di gestione della configurazione
- Spinte metallostatiche
- Coding ingegneria
- Usdicam
- Paola perin unipv
- Ingegneria ferrara
- Dipartimento ingegneria trento
- Ingegneria civile unical
- Ingegneria e architettura unibo
- Errori ingegneria
- Tesi ingegneria energetica
- Cad ingegneria aerospaziale sapienza
- Tolleranza simmetria
- Ingegneria gestionale unisi
- Lauree magistrali parthenope
- Carlo bosna
- Slide corso preposto ppt
- Haccp ppt italiano
- Tlc bidimensionale
- Corso ecdl