La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Capitolo 2 Nozioni fondamentali su Java Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004- The McGraw-Hill.

Presentazioni simili


Presentazione sul tema: "Capitolo 2 Nozioni fondamentali su Java Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004- The McGraw-Hill."— Transcript della presentazione:

1 Capitolo 2 Nozioni fondamentali su Java Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004- The McGraw-Hill Companies srl

2 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl Attività Visualizzare la previsione I think there is a world market for maybe five computers. Thomas Watson, IBM, 1943.

3 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl Output dell'esempio

4 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl DisplayForecast.java // Autori: J. P. Cohoon e J. W. Davidson // Scopo: visualizzare una citazione nella finestra della console public class DisplayForecast // metodo main(): punto di ingresso per l'applicazione public static void main(String[] args) System.out.print("I think there is a world market for"); System.out.println(" maybe five computers."); System.out.println(" Thomas Watson, IBM, 1943."); }

5 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl DisplayForecast.java // Autori: J. P. Cohoon e J. W. Davidson // Scopo: visualizzare una citazione nella finestra della console public class DisplayForecast // metodo main(): punto di ingresso per l'applicazione public static void main(String[] args) System.out.print("I think there is a world market for"); System.out.println(" maybe five computers."); System.out.println(" Thomas Watson, IBM, 1943."); } Tre istruzioni costituiscono l'azione del metodo main() Il metodo main() è parte della classe DisplayForecast

6 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl DisplayForecast.java // Autori: J. P. Cohoon e J. W. Davidson // Scopo: visualizzare una citazione nella finestra della console public class DisplayForecast // metodo main(): punto di ingresso per l'applicazione public static void main(String[] args) System.out.print("I think there is a world market for"); System.out.println(" maybe five computers."); System.out.println(" Thomas Watson, IBM, 1943."); } Un metodo è un frammento di codice denominato che esegue qualche azione o implementa un comportamento

7 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl DisplayForecast.java // Autori: J. P. Cohoon e J. W. Davidson // Scopo: visualizzare una citazione nella finestra della console public class DisplayForecast // metodo main(): punto di ingresso per l'applicazione public static void main(String[] args) System.out.print("I think there is a world market for"); System.out.println(" maybe five computers."); System.out.println(" Thomas Watson, IBM, 1943."); } Un programma applicativo è necessario per disporre di un metodo public static void chiamato main()

8 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl DisplayForecast.java // Autori: J. P. Cohoon e J. W. Davidson // Scopo: visualizzare una citazione nella finestra della console public class DisplayForecast // metodo main(): punto di ingresso per l'applicazione public static void main(String[] args) System.out.print("I think there is a world market for"); System.out.println(" maybe five computers."); System.out.println(" Thomas Watson, IBM, 1943."); } public, static e void sono parole chiave. Non possono essere usate come nomi public indica che il metodo è condivisibile

9 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl DisplayForecast.java // Autori: J. P. Cohoon e J. W. Davidson // Scopo: visualizzare una citazione nella finestra della console public class DisplayForecast // metodo main(): punto di ingresso per l'applicazione public static void main(String[] args) System.out.print("I think there is a world market for"); System.out.println(" maybe five computers."); System.out.println(" Thomas Watson, IBM, 1943."); } Parleremo di static e void in seguito

10 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl DisplayForecast.java // Autori: J. P. Cohoon e J. W. Davidson // Scopo: visualizzare una citazione nella finestra della console public class DisplayForecast // metodo main(): punto di ingresso per l'applicazione public static void main(String[] args) System.out.print("I think there is a world market for"); System.out.println(" maybe five computers."); System.out.println(" Thomas Watson, IBM, 1943."); } Java consente di costruire un'istruzione su più righe di testo I punti e virgola delimitano un'istruzione dalla successiva

11 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl DisplayForecast.java // Autori: J. P. Cohoon e J. W. Davidson // Scopo: visualizzare una citazione nella finestra della console public class DisplayForecast // metodo main(): punto di ingresso per l'applicazione public static void main(String[] args) System.out.print("I think there is a world market for"); System.out.println(" maybe five computers."); System.out.println(" Thomas Watson, IBM, 1943."); } Una classe definisce un tipo di oggetto. Un oggetto può disporre di metodi e attributi La parola chiave class indica che segue una definizione di classe

12 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl DisplayForecast.java // Autori: J. P. Cohoon e J. W. Davidson // Scopo: visualizzare una citazione nella finestra della console public class DisplayForecast // metodo main(): punto di ingresso per l'applicazione public static void main(String[] args) System.out.print("I think there is a world market for"); System.out.println(" maybe five computers."); System.out.println(" Thomas Watson, IBM, 1943."); } Una classe, come un metodo, deve avere un nome

13 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl DisplayForecast.java // Autori: J. P. Cohoon e J. W. Davidson // Scopo: visualizzare una citazione nella finestra della console public class DisplayForecast // metodo main(): punto di ingresso per l'applicazione public static void main(String[] args) System.out.print("I think there is a world market for"); System.out.println(" maybe five computers."); System.out.println(" Thomas Watson, IBM, 1943."); } I programmi vengono letti dalle persone, quindi è importante garantire che siano leggibili. Usare spazi vuoti, commenti e rientri per facilitare la comprensione

14 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl DisplayForecast.java // Autori: J. P. Cohoon e J. W. Davidson // Scopo: visualizzare una citazione nella finestra della console public class DisplayForecast // metodo main(): punto di ingresso per l'applicazione public static void main(String[] args) System.out.print("I think there is a world market for"); System.out.println(" maybe five computers."); System.out.println(" Thomas Watson, IBM, 1943."); } Gli spazi vuoti separano gli elementi del programma Gli spazi vuoti tra gli elementi del programma sono ignorati da Java Spazio vuoto

15 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl DisplayForecast.java // Autori: J. P. Cohoon e J. W. Davidson // Scopo: visualizzare una citazione nella finestra della console public class DisplayForecast // metodo main(): punto di ingresso per l'applicazione public static void main(String[] args) System.out.print("I think there is a world market for"); System.out.println(" maybe five computers."); System.out.println(" Thomas Watson, IBM, 1943."); } // indica che il resto della riga è un commento I commenti sono usati per documentare gli autori, lo scopo e gli elementi del programma Tre commenti

16 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl Rientri // Autori: J. P. Cohoon e J. W. Davidson // Scopo: visualizzare una citazione nella finestra della console public class DisplayForecast // metodo main(): punto di ingresso per l'applicazione public static void main(String[] args) System.out.print("I think there is a world market for"); System.out.println(" maybe five computers."); System.out.println(" Thomas Watson, IBM, 1943."); } I rientri indicano i componenti secondari Il metodo main() è parte di DisplayForecast Le istruzioni sono parte del metodo main()

17 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl Metodo main() public static void main(String[] args) System.out.print("I think there is a world market for"); System.out.println(" maybe five computers."); System.out.println(" Thomas Watson, IBM, 1943."); } La classe System fornisce oggetti che stampano e leggono valori La variabile di sistema out fa riferimento all'oggetto di stampa standard È conosciuto come flusso di output standard La variabile out fornisce l'accesso ai metodi di stampa print(): visualizza un valore println(): visualizza un valore e sposta il cursore nella riga successiva

18 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl System.out La variabile System.out dà accesso a un flusso di output di tipo PrintStream Lattributo per la destinazione della stampa per loggetto PrintStream è la finestra della console I comportamenti delloggetto PrintStream offrono una vista di alto livello sul processo di stampa

19 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl Selezione Il punto indica che si intende selezionare un singolo membro della classe System Il punto indica che si intende selezionare un singolo membro di out Il membro out della classe System è un oggetto flusso di output automaticamente associato con la finestra della console sulla quale si esegue lapplicazione La classe System è definita nella distribuzione standard di java.lang Membro metodo di out. Lesecuzione del membro print() fa sì che il suo parametro venga visualizzato nel flusso di output Stringa di caratteri letterali che contiene il parametro per print()

20 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl Metodo main() public static void main(String[] args) System.out.print("I think there is a world market for"); System.out.println(" maybe five computers."); System.out.println(" Thomas Watson, IBM, 1943."); } I metodi print() e println() richiedono entrambi un parametro stringa Il parametro specifica il valore da usare nell'invocazione

21 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl Metodo main() public static void main(String[] args) System.out.print("I think there is a world market for"); System.out.println(" maybe five computers."); System.out.println(" Thomas Watson, IBM, 1943."); } L'istruzione print() avvia l'output del programma I think there is a world market for n

22 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl Metodo main() public static void main(String[] args) System.out.print("I think there is a world market for"); System.out.println(" maybe five computers."); System.out.println(" Thomas Watson, IBM, 1943."); } La prima istruzione println() completa la prima riga di output I think there is a world market for maybe five computers n

23 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl Metodo main() public static void main(String[] args) System.out.print("I think there is a world market for"); System.out.println(" maybe five computers."); System.out.println(" Thomas Watson, IBM, 1943."); } La seconda istruzione println() avvia e completa la seconda riga di output I think there is a world market for maybe five computers Thomas Watson, IBM, 1943 n

24 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl Esperimento public static void main(String[] args) System.out.print("The real problem is not whether "); System.out.print("machines think but whether people "); System.out.println("do"); System.out.println(" B.F. Skinner (paraphrased)"); } Qual è l'output di questo metodo main()?

25 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl Calcolo I programmatori spesso scrivono piccoli programmi per calcolare valori utili Esempio - Indice di massa corporea (BMI) Misura della forma fisica Rapporto tra il peso della persona e il quadrato della sua altezza Il peso è in chilogrammi, l'altezza in metri La persona in questione è alta 4,5 piedi e pesa 75,5 libbre Conversioni metriche Chilogrammi per pinta 0,454 Metri per piede 0,3046

26 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl Elementi di programma comuni Tipo Set di valori e operatori che possono manipolare e creare valori dal set I tipi primitivi supportano valori numerici, logici e caratteri double e float Valori con decimali byte, short, int, long Interi char Caratteri (considerati numerici) boolean Valori logici Operatori di base + addizione- sottrazione * moltiplicazione/ divisione

27 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl Elementi di programma comuni Costante Nome simbolico per una posizione di memoria il cui valore non cambia KILOGRAMS_PER_POUND Variabile Nome simbolico per una posizione di memoria il cui valore può cambiare weightInPounds

28 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl Struttura del programma per BMI.java // Scopo: calcolare BMI per peso e altezza dati public class BMI // main(): punto di ingresso per l'applicazione public static void main(String[] args) // definisce le costanti // imposta le caratteristiche della persona // converte negli equivalenti metrici // esegue il calcolo del BMI // visualizza il risultato }

29 public static void main(String[] args) // definisce le costanti final double KILOGRAMS_PER_POUND = 0.454; final double METERS_PER_FOOT = 0.3046; // imposta le caratteristiche della persona double weightInPounds = 75.5; // peso della persona double heightInFeet = 4.5; // altezza della persona // converte negli equivalenti metrici double metricWeight = weightInPounds * KILOGRAMS_PER_POUND; double metricHeight = heightInFeet * METERS_PER_FOOT; // esegue il calcolo del BMI double bmi = metricWeight / (metricHeight * metricHeight); // visualizza il risultato System.out.println("A person with"); System.out.println(" weight " + weightInPounds + " lbs"); System.out.println(" height " + heightInFeet + " feet"); System.out.println("has a BMI of " + Math.round(bmi)); }

30 public static void main(String[] args) // definisce le costanti final double KILOGRAMS_PER_POUND = 0.454; final double METERS_PER_FOOT = 0.3046; // imposta le caratteristiche della persona double weightInPounds = 75.5; // peso della persona double heightInFeet = 4.5; // altezza della persona // converte negli equivalenti metrici double metricWeight = weightInPounds * KILOGRAMS_PER_POUND; double metricHeight = heightInFeet * METERS_PER_FOOT; // esegue il calcolo del BMI double bmi = metricWeight / (metricHeight * metricHeight); // visualizza il risultato System.out.println("A person with"); System.out.println(" weight " + weightInPounds + " lbs"); System.out.println(" height " + heightInFeet + " feet"); System.out.println("has a BMI of " + Math.round(bmi)); }

31 public static void main(String[] args) // definisce le costanti final double KILOGRAMS_PER_POUND = 0.454; final double METERS_PER_FOOT = 0.3046; // imposta le caratteristiche della persona double weightInPounds = 75.5; // peso della persona double heightInFeet = 4.5; // altezza della persona // converte negli equivalenti metrici double metricWeight = weightInPounds * KILOGRAMS_PER_POUND; double metricHeight = heightInFeet * METERS_PER_FOOT; // esegue il calcolo del BMI double bmi = metricWeight / (metricHeight * metricHeight); // visualizza il risultato System.out.println("A person with"); System.out.println(" weight " + weightInPounds + " lbs"); System.out.println(" height " + heightInFeet + " feet"); System.out.println("has a BMI of " + Math.round(bmi)); }

32 public static void main(String[] args) // definisce le costanti final double KILOGRAMS_PER_POUND = 0.454; final double METERS_PER_FOOT = 0.3046; // imposta le caratteristiche della persona double weightInPounds = 75.5; // peso della persona double heightInFeet = 4.5; // altezza della persona // converte negli equivalenti metrici double metricWeight = weightInPounds * KILOGRAMS_PER_POUND; double metricHeight = heightInFeet * METERS_PER_FOOT; // esegue il calcolo del BMI double bmi = metricWeight / (metricHeight * metricHeight); // visualizza il risultato System.out.println("A person with"); System.out.println(" weight " + weightInPounds + " lbs"); System.out.println(" height " + heightInFeet + " feet"); System.out.println("has a BMI of " + Math.round(bmi)); }

33 public static void main(String[] args) // definisce le costanti final double KILOGRAMS_PER_POUND = 0.454; final double METERS_PER_FOOT = 0.3046; // imposta le caratteristiche della persona double weightInPounds = 75.5; // peso della persona double heightInFeet = 4.5; // altezza della persona // converte negli equivalenti metrici double metricWeight = weightInPounds * KILOGRAMS_PER_POUND; double metricHeight = heightInFeet * METERS_PER_FOOT; // esegue il calcolo del BMI double bmi = metricWeight / (metricHeight * metricHeight); // visualizza il risultato System.out.println("A person with"); System.out.println(" weight " + weightInPounds + " lbs"); System.out.println(" height " + heightInFeet + " feet"); System.out.println("has a BMI of " + Math.round(bmi)); }

34 public static void main(String[] args) // definisce le costanti final double KILOGRAMS_PER_POUND = 0.454; final double METERS_PER_FOOT = 0.3046; // imposta le caratteristiche della persona double weightInPounds = 75.5; // peso della persona double heightInFeet = 4.5; // altezza della persona // converte negli equivalenti metrici double metricWeight = weightInPounds * KILOGRAMS_PER_POUND; double metricHeight = heightInFeet * METERS_PER_FOOT; // esegue il calcolo del BMI double bmi = metricWeight / (metricHeight * metricHeight); // visualizza il risultato System.out.println("A person with"); System.out.println(" weight " + weightInPounds + " lbs"); System.out.println(" height " + heightInFeet + " feet"); System.out.println("has a BMI of " + Math.round(bmi)); }

35 public static void main(String[] args) // definisce le costanti final double KILOGRAMS_PER_POUND = 0.454; final double METERS_PER_FOOT = 0.3046; // imposta le caratteristiche della persona double weightInPounds = 75.5; // peso della persona double heightInFeet = 4.5; // altezza della persona // converte negli equivalenti metrici double metricWeight = weightInPounds * KILOGRAMS_PER_POUND; double metricHeight = heightInFeet * METERS_PER_FOOT; // esegue il calcolo del BMI double bmi = metricWeight / (metricHeight * metricHeight); // visualizza il risultato System.out.println("A person with"); System.out.println(" weight " + weightInPounds + " lbs"); System.out.println(" height " + heightInFeet + " feet"); System.out.println("has a BMI of " + Math.round(bmi)); }

36 public static void main(String[] args) // definisce le costanti final double KILOGRAMS_PER_POUND = 0.454; final double METERS_PER_FOOT = 0.3046; // imposta le caratteristiche della persona double weightInPounds = 75.5; // peso della persona double heightInFeet = 4.5; // altezza della persona // converte negli equivalenti metrici double metricWeight = weightInPounds * KILOGRAMS_PER_POUND; double metricHeight = heightInFeet * METERS_PER_FOOT; // esegue il calcolo del BMI double bmi = metricWeight / (metricHeight * metricHeight); // visualizza il risultato System.out.println("A person with"); System.out.println(" weight " + weightInPounds + " lbs"); System.out.println(" height " + heightInFeet + " feet"); System.out.println("has a BMI of " + Math.round(bmi)); }

37 public static void main(String[] args) // definisce le costanti final double KILOGRAMS_PER_POUND = 0.454; final double METERS_PER_FOOT = 0.3046; // imposta le caratteristiche della persona double weightInPounds = 75.5; // peso della persona double heightInFeet = 4.5; // altezza della persona // converte negli equivalenti metrici double metricWeight = weightInPounds * KILOGRAMS_PER_POUND; double metricHeight = heightInFeet * METERS_PER_FOOT; // esegue il calcolo del BMI double bmi = metricWeight / (metricHeight * metricHeight); // visualizza il risultato System.out.println("A person with"); System.out.println(" weight " + weightInPounds + " lbs"); System.out.println(" height " + heightInFeet + " feet"); System.out.println("has a BMI of " + Math.round(bmi)); } La valutazione dell'operatore dipende dai suoi operandi

38 public static void main(String[] args) // definisce le costanti final double KILOGRAMS_PER_POUND = 0.454; final double METERS_PER_FOOT = 0.3046; // imposta le caratteristiche della persona double weightInPounds = 75.5; // peso della persona double heightInFeet = 4.5; // altezza della persona // converte negli equivalenti metrici double metricWeight = weightInPounds * KILOGRAMS_PER_POUND; double metricHeight = heightInFeet * METERS_PER_FOOT; // esegue il calcolo del BMI double bmi = metricWeight / (metricHeight * metricHeight); // visualizza il risultato System.out.println("A person with"); System.out.println(" weight " + weightInPounds + " lbs"); System.out.println(" height " + heightInFeet + " feet"); System.out.println("has a BMI of " + Math.round(bmi)); } Math.round(bmi) è 18

39 // Scopo: convertire una temperatura Celsius in Fahrenheit public class CelsiusToFahrenheit // main(): punto di ingresso per l'applicazione public static void main(String[] args) // imposta la temperatura Celsius in questione int celsius = 28; // converte nell'equivalente Fahrenheit int fahrenheit = 32 + ((9 * celsius) / 5); // visualizza il risultato System.out.println("Celsius temperature"); System.out.println(" " + celsius); System.out.println("equals Fahrenheit temperature"); System.out.println(" " + fahrenheit); }

40 // Scopo: dimostrare l'aritmetica dei caratteri public class LowerToUpper // main(): punto di ingresso per l'applicazione public static void main(String[] args) // imposta il carattere minuscolo desiderato char lowerCaseLetter = 'c'; // converte nell'equivalente maiuscolo char upperCaseLetter = 'A' + (lowerCaseLetter - 'a'); // visualizza il risultato System.out.println("Uppercase equivalent of"); System.out.println(" " + lowerCaseLetter); System.out.println("is"); System.out.println(" " + upperCaseLetter); }

41 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl Espressioni Qual è il valore usato per inizializzare l'espressione int expression = 4 + 2 * 5; Quale valore viene visualizzato System.out.println(5 / 2.0); Regole di Java in breve Ogni operatore ha un livello di precedenza e un'associatività Gli operatori con precedenza maggiore sono valutati per primi * e / hanno la precedenza rispetto a + e - L'associatività indica come gestire i legami Quando vengono usati valori in virgola mobile, il risultato è in virgola mobile

42 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl Domanda La seguente istruzione calcola la media delle variabili double a, b e c? Perché double average = a + b + c / 3.0;

43 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl Programmi interattivi Programmi che interagiscono con i loro utenti attraverso istruzioni che eseguono input e output BMI.java Non interattivo: peso e altezza sono fissi

44 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl Supporto per programmi console interattivi Variabile System.in Associata al flusso di input standard: la tastiera Classe BufferedReader Supporta l'estrazione di una riga di input come stringa di caratteri BufferedReader stdin = new BufferedReader( new InputStreamReader(System.in)); La variabile stdin dà accesso a un flusso di input di tipo BufferedReader. L'attributo di origine dell'input per questo oggetto BufferedReader è la tastiera. I comportamenti di un oggetto BufferedReader offrono una vista di inserimento di testo di alto livello.

45 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl Accesso al flusso di input standard Impostazione BufferedReader stdin = new BufferedReader( new InputStreamReader(System.in)); Le operazioni new costruiscono nuovi oggetti. Il valore dell'operazione è un riferimento a un nuovo oggetto. Questa particolare operazione new costruisce un oggetto BufferedReader da un oggetto new InputStreamReader, che è stato realizzato utilizzando l'oggetto che rappresenta il flusso di input standard.

46 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl Programma interattivo per BMI Struttura del programma // Scopo: calcolare BMI per peso e altezza // specificati dall'utente import java.io.*; public class BMICalculator // main(): punto di ingresso per l'applicazione public static void main(String[] args) throws IOException // definisce le costanti // visualizza la legenda // imposta il flusso di input // ottiene le caratteristiche della persona // converte negli equivalenti metrici // esegue il calcolo del BMI // visualizza il risultato }

47 public static void main(String[] args) throws IOException final double KILOGRAMS_PER_POUND = 0.454; final double METERS_PER_FOOT = 0.3046; System.out.println("BMI Calculator\n"); BufferedReader stdin = new BufferedReader( new InputStreamReader(System.in)); System.out.print("Enter weight (lbs): "); double weight = Double.parseDouble(stdin.readLine()); System.out.print("Enter height (feet): "); double height = Double.parseDouble(stdin.readLine()); double metricWeight = weight * KILOGRAMS_PER_POUND; double metricHeight = height * METERS_PER_FOOT; double bmi = metricWeight / (metricHeight * metricHeight); System.out.println("A person with"); System.out.println(" weight " + weight + " (lbs)"); System.out.println(" height " + height + " (feet)"); System.out.println("has a BMI of " + bmi); }

48 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl Accesso al flusso di input standard Estrazione System.out.print("Enter weight (lbs): "); double weight = Double.parseDouble(stdin.readLine()); System.out.print("Enter height (feet): "); double height = Double.parseDouble(stdin.readLine());

49 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl Assegnazione di variabili primitiva Operatore di assegnazione = Consente l'aggiornamento di una posizione di memoria per una variabile Considerare int j = 11; j = 1985; Nome dell'oggetto definito in precedenza Espressione da elaborare

50 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl Assegnazione di variabili primitiva Operatore di assegnazione = Consente l'aggiornamento di una posizione di memoria per una variabile Considerare int j = 11; j = 1985; Nome dell'oggetto definito in precedenza Espressione da elaborare

51 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl Assegnazione di variabili primitiva Considerare int a = 1; int aSquared = a * a; a = 5; aSquared = a * a; Considerare int i = 0; i = i + 1; Considerare int asaRating; asaRating = 400;

52 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl Assegnazione di variabili primitiva Considerare int a = 1; int aSquared = a * a; a = 5; aSquared = a * a; Considerare int i = 0; i = i + 1; Considerare int asaRating; asaRating = 400;

53 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl Assegnazione di variabili primitiva Considerare int a = 1; int aSquared = a * a; a = 5; aSquared = a * a; Considerare int i = 0; i = i + 1; Considerare int asaRating; asaRating = 400;

54 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl Assegnazione di variabili primitiva Considerare int a = 1; int aSquared = a * a; a = 5; aSquared = a * a; Considerare int i = 0; i = i + 1; Considerare int asaRating; asaRating = 400;

55 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl Assegnazione di variabili primitiva Considerare int a = 1; int aSquared = a * a; a = 5; aSquared = a * a; Considerare int i = 0; i = i + 1; Considerare int asaRating; asaRating = 400;

56 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl Assegnazione di variabili primitiva Considerare int a = 1; int aSquared = a * a; a = 5; aSquared = a * a; Considerare int i = 0; i = i + 1; Considerare int asaRating; asaRating = 400;

57 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl Assegnazione di variabili primitiva Considerare int a = 1; int aSquared = a * a; a = 5; aSquared = a * a; Considerare int i = 0; i = i + 1; Considerare int asaRating; asaRating = 400;

58 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl Assegnazione di variabili primitiva Considerare double x = 5.12; double y = 19.28; double rememberX = x; x = y; y = rememberX ;

59 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl Assegnazione di variabili primitiva Considerare double x = 5.12; double y = 19.28; double rememberX = x; x = y; y = rememberX ;

60 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl Assegnazione di variabili primitiva Considerare double x = 5.12; double y = 19.28; double rememberX = x; x = y; y = rememberX ;

61 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl Assegnazione di variabili primitiva Considerare double x = 5.12; double y = 19.28; double rememberX = x; x = y; y = rememberX ;

62 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl Assegnazione di variabili primitiva Considerare double x = 5.12; double y = 19.28; double rememberX = x; x = y; y = rememberX ;

63 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl Operatori di incremento e decremento ++ Incrementa una variabile numerica di 1 -- Decrementa una variabile numerica di 1 Considerare int i = 4; ++i; System.out.println(i); System.out.print(++i); System.out.println(i++); System.out.println(i);

64 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl Operatori di incremento e decremento ++ Incrementa una variabile numerica di 1 -- Decrementa una variabile numerica di 1 Considerare int i = 4; // definizione ++i; System.out.println(i); System.out.print(++i); System.out.println(i++); System.out.println(i);

65 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl Operatori di incremento e decremento ++ Incrementa una variabile numerica di 1 -- Decrementa una variabile numerica di 1 Considerare int i = 4; ++i; // incremento System.out.println(i); System.out.print(++i); System.out.println(i++); System.out.println(i);

66 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl Operatori di incremento e decremento ++ Incrementa una variabile numerica di 1 -- Decrementa una variabile numerica di 1 Considerare int i = 4; ++i; System.out.println(i); // visualizzazione System.out.print(++i); System.out.println(i++); System.out.println(i);

67 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl Operatori di incremento e decremento ++ Incrementa una variabile numerica di 1 -- Decrementa una variabile numerica di 1 Considerare int i = 4; ++i; System.out.println(i); System.out.println(i); // aggiorna e visualizza System.out.println(i++); System.out.println(i);

68 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl Operatori di incremento e decremento ++ Incrementa una variabile numerica di 1 -- Decrementa una variabile numerica di 1 Considerare int i = 4; ++i; System.out.println(i); System.out.print(++i); System.out.println(i); // visualizza e aggiorna System.out.println(i);

69 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl Operatori di incremento e decremento ++ Incrementa una variabile numerica di 1 -- Decrementa una variabile numerica di 1 Considerare int i = 4; ++i; System.out.println(i); System.out.print(++i); System.out.println(i++); System.out.println(i); // visualizzazione

70 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl Sequenze di escape Java fornisce sequenze di escape per la stanza di caratteri speciali \bbackspace \nnewline (nuova riga) \ttab (tabulazione) \rcarriage return (ritorno carrello) \\backslash \"double quote (virgoletta doppia) \'single quote (virgoletta singola)

71 Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill Companies srl Sequenze di escape Che cosa producono in output queste istruzioni? System.out.println("Person\tHeight\tShoe size"); System.out.println("========================="); System.out.println("Hannah\t51\"\t7"); System.out.println("Jenna\t5'10\"\t9"); System.out.println("JJ\t6'1\"\t14"); Output Person Height Shoe size ========================= Hannah 5'1" 7 Jenna 5'10" 9 JJ 6'1" 14


Scaricare ppt "Capitolo 2 Nozioni fondamentali su Java Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004- The McGraw-Hill."

Presentazioni simili


Annunci Google