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

Slides:



Advertisements
Presentazioni simili
1 Le s-espressioni. 2 Un nuovo esempio completo: le s-espressioni Sexpr 4 alberi binari (possibilmente vuoti) che hanno sulle foglie atomi (stringhe)
Advertisements

1 Progettazione gerarchica delle s- espressioni, utilizzando lereditarietà
Interfacce Java.
WSDL (Web Services Description Language) Laurea Magistrale in Informatica Reti 2 (2006/07) dott. Federico Paoloni
Capitolo 2 Nozioni fondamentali su Java Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill.
Capitolo 4 Classi Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies.
Capitolo 7 Programmazione con metodi e classi Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004.
Capitolo 5 Decisioni Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies.
Capitolo 8 Array Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies srl.
Capitolo 1 Introduzione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies.
Esercizio 2. Mostrare l'evoluzione dello stato (ambiente di classi, heap, pila, System.out) durante la valutazione delle seguenti dichiarazioni di classe.
Model – View - Controller
Esempio: Tombola! Parte seconda.
Unified Modeling Language class C {…} class B extends C {…} Esiste una notazione grafica per mostrare le relazioni di ereditarietà. Object StringC B Tutte.
J0 1 Marco Ronchetti Java Threads & Sincronizzazione.
Modificatori: static Variabili e metodi associati ad una Classe anziche ad un Oggetto sono definiti static. Le variabili statiche servono come singola.
Richiami di Java Multithreading. Threads (subclassing) public class A { public void a_method { C t = new C(); //C t = new C(String name); t.start(); …
Sezione: Costruttori Costruttori. Definizione dei costruttori Se per una classe A non scrivo nessun costruttore, il sistema automaticamente crea il costruttore.
prompt> java SumAverage
1 struct Pila { private: int size; int defaultGrowthSize; int marker; int * contenuto; void cresci(int increment); public: Pila(int initialSize) ; Pila();
Costruzione di Interfacce Lezione 10 Dal Java al C++ parte 1
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Introduzione a JAVA Anno Accademico 2009/2010.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) JAVA: i commenti Anno Accademico 2009/2010.
1. Conoscere luso delle collezioni in Java Comprendere le principali caratteristiche nelle varie classi di Collection disponibili Saper individuare quali.
JAVA C import java.util.*; #include <stdio.h>
Programming with JXTA Hello World Peer discovery Peer Group discovery Creating Peer group Joining a Peer Group.
6.6Ordinamento di Vettori Ordinamento di dati –Applicazione computazionale importante –Virtualmente ogni organizzazione deve ordinare dei dati Enormi quantità
1 Implementazione di Linguaggi 2 PARTE 6 Implementazione di Linguaggi 2 PARTE 6 Massimo Ancona DISI Università di Genova Testo: A.V. Aho, R. Sethi, J.D.Ullman.
Selezione (=scelta) con “if-else”
2000 Prentice Hall, Inc. All rights reserved. 1 Capitolo 6: Classi e astrazione dati 1.Introduzione 2.Definizione delle strutture 3.Accedere ai membri.
Sottoprogrammi e Unità di Compilazione Nicola Fanizzi Laboratorio - Corso di Programmazione (B) C.d.L. in Informatica DIB - Università degli Studi di Bari.
1 laboratorio di calcolo II AA 2003/04 ottava settimana a cura di Domizia Orestano Dipartimento di Fisica Stanza tel. ( )
Packages. Package: insieme di classi e interfacce in relazione Per formare un package basta inserire la direttiva come prima istruzione nel file sorgente.
Programmazione distribuita in Java
1 Funzioni e Procedure in C Corso di Informatica A Vito Perrone.
Java base VI: Gestione I/O. Argomenti Introdurre le API per linput e output in Java.
Sequence. CREARE UNA SEQUENCE CREATE SEQUENCE nome [INCREMENT BY n] [START WITH n] [MAXVALUE n | NOMAXVALUE] [MINVALUE n | NOMINVALUE] [CYCLE | NOCYCLE]
Programmazione in Java
Elementi di programmazione ad oggetti a. a. 2009/2010 Corso di Laurea Magistrale in Ingegneria Elettronica Docente: Mauro Mazzieri, Dipartimento di Ingegneria.
Lezione n° 05 Istituto Statale di Istruzione Superiore F. Enriques Corso JAVA.
Un esempio: Registrazione e lettura di dati in un file
Microsoft Access Maschere.
Il sistema operativo Sistema operativo (in breve) –È costituito dai programmi di gestione delle operazioni più elementari del computer –… gestione di vari.
Fondamenti di Informatica Corsi di Laurea in Ingegneria Gestionale Canale AL ESERCITAZIONE 4 ARGOMENTI: STRINGHE DI CARATTERI.
JavaScript Lezione 5 Tipizzazione ed operazioni tra tipi diversi Istruzioni di input.
PRIMI DISEGNI CON CABRI Realizzato da Daniel Bulgarini e Matteo Co CLASSE 2°C LICEO PASCAL MANERBIO.
Primi passi con Windows: Gestione del Desktop Barra Applicazioni Menu Avvio ISTITUTO COMPRENSIVO N.7 - VIA VIVALDI - IMOLA Via Vivaldi, Imola.
OUTPUT FORMATTATO La funzione printf consente di effettuare la stampa a video formattata. Sintassi: printf ( stringa_formato, arg0, arg1, … ); La stringa.
Moduli o Form I Moduli permettono all'utente di immettere informazioni...
Fondamenti di Informatica Corsi di Laurea in Ingegneria Gestionale Canale AL ESERCITAZIONE 6 ARGOMENTI: LAVORARE CON CLASSI METODI DELLISTANZA, COSTRUTTORI.
24 aprile 2002 Avvisi: Risultati 1 o Esonero: (entro) lunedi 27 disponibili nella pag. WEB, ma anche esposti nella bacheca fuori dal corridoio 2 o dente,
Ese 2 (del 31 Marzo 2004). Mostrare l'evoluzione dello stato (ambiente di classi, heap, pila, System.out) durante la valutazione delle seguenti dichiarazioni.
Soluzioni 1.Struttura base soluzione 2.Lettura dei tasti 3.Identificazione dei tasti 4.Accensione dei LED 5.Rotazione dei LED 6.Rotazione dei tasti fino.
Test con JUnit. zJUnit è un ambiente di test per programmi Java ySviluppato da Kent Beck É possibile usare JUnit allinterno di Eclipse per eseguire i.
1 Simulated multiple inheritance Sandro Pedrazzini Approfondimento Simulated multiple inheritance in Java.
SUBQUERY Chi ha un salario maggiore di quello di Abel? Occorre scomporre la query in due sotto problemi: MAIN : quali impiegati hanno un salario maggiore.
Appunti di Java (J2SDK 1.4.2, JDK 1.6.0) prof. Antonella Schiavon settembre 2009.
Introduzione al linguaggio C. Cos’e’ il C? Il C e’ un linguaggio ad alto livello Un compilatore C prende in input un file contenente codice sorgente C.
Collection & Generics in Java
JDBC Java DataBase Connectivity SISTEMI ITIS B. CASTELLI Anno Scolastico
Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies.
Fondamenti di informatica Oggetti e Java Luca Cabibbo Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies.
Capitolo 12 Thread Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies.
Programmazione in Java
Java World Introduzione.
Introduzione al linguaggio C
Commenti Ogni riga che comincia con il simbolo # non viene letta dall’interprete per cui rappresenta un modo per commentare il listato # Questo è un esempio.
TIPI PRIMITIVI TIPI STRUTTURATI
Corso Java Introduzione.
Java Introduzione.
Transcript della presentazione:

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

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

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

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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 – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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()

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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()

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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()

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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()?

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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 }

public static void main(String[] args) // definisce le costanti final double KILOGRAMS_PER_POUND = 0.454; final double METERS_PER_FOOT = ; // 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)); }

public static void main(String[] args) // definisce le costanti final double KILOGRAMS_PER_POUND = 0.454; final double METERS_PER_FOOT = ; // 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)); }

public static void main(String[] args) // definisce le costanti final double KILOGRAMS_PER_POUND = 0.454; final double METERS_PER_FOOT = ; // 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)); }

public static void main(String[] args) // definisce le costanti final double KILOGRAMS_PER_POUND = 0.454; final double METERS_PER_FOOT = ; // 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)); }

public static void main(String[] args) // definisce le costanti final double KILOGRAMS_PER_POUND = 0.454; final double METERS_PER_FOOT = ; // 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)); }

public static void main(String[] args) // definisce le costanti final double KILOGRAMS_PER_POUND = 0.454; final double METERS_PER_FOOT = ; // 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)); }

public static void main(String[] args) // definisce le costanti final double KILOGRAMS_PER_POUND = 0.454; final double METERS_PER_FOOT = ; // 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)); }

public static void main(String[] args) // definisce le costanti final double KILOGRAMS_PER_POUND = 0.454; final double METERS_PER_FOOT = ; // 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)); }

public static void main(String[] args) // definisce le costanti final double KILOGRAMS_PER_POUND = 0.454; final double METERS_PER_FOOT = ; // 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

public static void main(String[] args) // definisce le costanti final double KILOGRAMS_PER_POUND = 0.454; final double METERS_PER_FOOT = ; // 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

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

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

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies srl Espressioni Qual è il valore usato per inizializzare l'espressione int expression = * 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

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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;

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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.

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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.

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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 }

public static void main(String[] args) throws IOException final double KILOGRAMS_PER_POUND = 0.454; final double METERS_PER_FOOT = ; 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); }

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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());

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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;

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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;

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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;

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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;

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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;

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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;

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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;

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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 ;

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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 ;

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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 ;

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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 ;

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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 ;

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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);

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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);

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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);

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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);

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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);

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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);

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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)

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © 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