vuoi
o PayPal
tutte le volte che vuoi
Copiare variabili importarla nel programma, usando l’enunciato
Le variabili di tipi numerici fondamentali ¨ import nomePacchetto.NomeClasse;
indirizzano una posizione in memoria che ¨ Le classi System e String appartengono al
valore
contiene un , che viene copiato con pacchetto java.lang
l’assegnazione ¨ il pacchetto java.lang viene importato
¤ cambiando il valore di una variabile, non automaticamente
viene cambiato il valore dell’altra
¨ Le variabili oggetto indirizzano una
posizione in memoria che, invece, contiene un Scopo: importare una classe da un pacchetto,
riferimento ad un oggetto , e solo tale per poterla utilizzare in un programma
riferimento viene copiato con l’assegnazione
¤ modificando lo stato dell’oggetto, tale
modifica è visibile da entrambi i riferimenti Scopo: importare tutte le classi di un
non viene creata una copia
¤ pacchetto, per poterle utilizzare in un
dell’oggetto! programma
Collaudo di una classe Usare una classe BankAccount
¨ Passi per costruire un programma di ¨ BankAccount()
collaudo ¤ crea un conto bancario inizialmente vuoto
¤ Definire una nuova classe
¨ double getBalance()
¤ Restituisce il valore del saldo Differenza tra metodi statici e non statici
¨ void withdraw(double amount) 1 println agisce su un oggetto (ad esempio,
System.out)
¤ Preleva l’ammontare indicato come
parametro esplicito 1 println è un metodo non statico
¨ void deposit(double amount) 1 Invoco il metodo con
nomeOggetto.nomeMetodo(…);
¤ Deposita l’ammontare indicato come
parametro esplicito 2 pow non agisce su un oggetto (Math è una
classe) metodo statico
2 Il metodo Math.pow è un
Le classi come contenitori di metodi 2 Invoco il metodo con
¨ Le classi possono essere utilizzate anche nomeClasse.nomeMetodo(…);
come semplici contenitori metodi
¤ Questi metodi non agiscono su oggetti ma
solo su eventuali parametri espliciti i nomi delle classi (es. Math) iniziano con una
maiuscola
n Non hanno un parametro implicito lettera
n Si dicono metodi statici (quelli con ¨ i nomi di oggetti (out) e metodi (println,
parametro implicito si chiamano “non statici”) pow) minuscola
iniziano con una lettera solo
Per invocare un metodo statico che si trova in § oggetti e metodi si distinguono perché
i
una classe devo utilizzare la seguente
sintassi: metodi sono sempre seguiti dalle
parentesi tonde
¨ NomeClasse.nomeMetodo(parametri); Esempio di firma di un metodo statico
La classe Math della libreria standard mette
a public : il metodo può essere invocato in
disposizione metodi statici per il calcolo di qualsiasi classe
tutte le static
¤ : il metodo è statico (non agisce su un
funzioni algebriche e trigonometriche oggetto)
double
y
¤ Math.pow(x, y) restituisce x ¤ : tipo di dato restituito
n (il nome pow deriva da power, potenza) n In generale è possibile che un metodo non
restituisca dati, in questo caso il tipo del dato
¤ Math.sqrt(x) restituisce la radice quadrata restituito è void
di x pow
¤ : nome o identificatore del metodo
n (il nome sqrt deriva da square root, radice double a, double b:
quadrata) ¤ parametri espliciti del
metodo
¤ Math.log(x) restituisce il logaritmo
naturale di x
¤ Math.sin(x) restituisce il seno di x espresso Nella classe Math sono definite alcune
in radianti costanti
n Non ha un equivalente di println della classe
PrintStream
La classe scanner
¨ La classe Scanner appartiene al pacchetto
java.util della libreria standard e lo scopo della
classe Scanner è quello di fornire una
costanti
¨ Sono statiche, ovvero comoda interfaccia all’oggetto System.in
appartengono alla classe oggetto
Prima di tutto bisogna creare un
¨ Tali costanti sono di norma public e per della classe Scanner usando l’istruzione
ottenere il loro ¨ E’ possibile creare un oggetto di questo tipo
valore si usa il nome della classe seguito dal a partire da un qualsiasi flusso di input
punto e dal ¨ Dopo aver creato uno scanner è possibile
nome della costante, Math.E, oppure usarne i metodi di lettura
Math.PI ¨ Durante ogni esecuzione dei metodi di
il programma si ferma
lettura di Scanner,
ed attende l’introduzione dell’input da
Assegnazioni e operatori matematici tastiera, che viene considerata conclusa
quando l’utente batte il tasto Invio
Questa operazione è talmente comune nella Il metodo nextInt restituisce un valore
programmazione, che il linguaggio Java numerico di tipo int
fornisce una scorciatoia ¨ Il metodo nextDouble restituisce un valore
numerico in virgola mobile
I progettisti della classe Scanner hanno usato
Esiste per tutti gli operatori aritmetici Localizzazione
la (il comportamento del
programma è legato alla configurazione del
sistema su cui viene fatto eseguire) quindi a
seconda della configurazione (anglosassone
italiana
o ) un valore di tipo double dovrà
essere inserito nella forma
Questa operazione è talmente comune nella
programmazione, che il linguaggio Java ¨ parteIntera.parteDecimale ad esempio
operatore apposito per:
fornisce un 4.35
l’incremento
¤ ¨ parteIntera,parteDecimale ad esempio
4,35
il decremento
¤
L’input standard dei programmi
L’interprete Java mette a disposizione dei
programmi in esecuzione il proprio input
standard (flusso di input), tramite
¤ System.in di tipo InputStream definito
nella classe System
¤ Sfortunatamente, la classe InputStream
non possiede metodi comodi per la ricezione
di dati numerici e stringhe