Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


ESERCIZI FONDAMENTI DI INFORMATICA JAVA, Esercizi di Fondamenti di informatica

ESERCIZI FONDAMENTI DI INFORMATICA JAVA

Tipologia: Esercizi

2019/2020

Caricato il 03/02/2020

libertar
libertar 🇮🇹

4.5

(15)

18 documenti

1 / 166

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
FONDAMENTI DI
INFORMATICA-JAVA
ESERCIZIARIO
Ingegneria
Gestionale
Meccanica
Meccatronica
Canale II
2008-2009
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d
pf5e
pf5f
pf60
pf61
pf62
pf63
pf64

Anteprima parziale del testo

Scarica ESERCIZI FONDAMENTI DI INFORMATICA JAVA e più Esercizi in PDF di Fondamenti di informatica solo su Docsity!

FONDAMENTI DI

INFORMATICA-JAVA

ESERCIZIARIO

Ingegneria

Gestionale

Meccanica

Meccatronica

Canale II

Presentazione

Per i neofiti della materia, la programmazione, ovvero la scrittura di programmi in un linguaggio di programmazione, può essere tanto ostica quanto di difficile comprensione: la mentalità e la logica con cui un programmatore affronta un problema è, spesso, molto diversa da quella usata nella realtà. Concetti come classi, metodi, costruttori o variabili possono sembrare oscuri ai più, ma un buon metodo di studio e, soprattutto, una continua pratica sulla materia possono facilitare il superamento delle difficoltà iniziali. E’ con quest’intento che nasce il seguente eserciziario: introdurre una materia le cui potenzialità sono facilmente riscontrabili nella vita odierna, in cui la tecnologia la fa da padrona. Soprattutto il linguaggio Java: disponibile gratuitamente sulla Rete, esso permette la creazione di applicazioni eseguibili su un’ampia gamma di computer e di sistemi operativi diversi e, soprattutto, è divenuto lo standard per lo sviluppo delle applicazioni integrate nelle pagine del World Wide Web, o meglio conosciuto come Internet, o di dispositivi quali cellulari o qualsiasi sistema che si basi su un controllo informatico, come i GPS e sensori. Molti degli esercizi presenti in codesto testo sono stati ricavati dal libro adottato a lezione: “Concetti di informatica e fondamenti di Java” (Cay H. Horstmann, Apogeo Edizioni). Altri, invece, sono esercitazioni proposte in laboratorio dal docente Giorgio Satta (per maggiori informazioni, si rimanda alla sua pagina

personale:http://www.dei.unipd.it/~satta/ ) o nel forum da lui gestito

(http://forum.dei.unipd.it/ , sezione Fond. di Informatica JAVA

(VICENZA) ).

L’eserciziario, in ogni caso, non potrà mai sostituire le nozioni espresse in classe o nel libro di testo: esso è una guida che, come Virgilio nella Divina Commedia, accompagna gli studenti all’approfondimento del linguaggio Java.

Struttura:

L’eserciziario è suddiviso in tre parti fondamentali:

  • Esercizi del libro: risoluzione di parte degli esercizi presenti nel testo ufficiale. Essa è ulteriormente suddivisa in capitoli, all’inizio dei quali si riassumono i concetti fondamentali
  • Esercizi stile esame: raccolta di esercizi svolti in classe o a lezione
  • Esercizi d’esame: esercizi assegnati durante gli esami Ogni esercizio, inoltre, è strutturato nel seguente modo:
  • Specchietto: concetti non spiegati a lezione ma introdotti dagli autori dei programmi
  • Testo: consegna dell’esercizio
  • Consigli: suggerimenti sulle modalità di sviluppo dei programmi. La loro utilità è puramente soggettiva.

Autori:

Bressan Marco (Brex) Da Giau Alessandro(Frollo) Dal Maso Alberto Fioretto Giulio (700hz) Gallo Amanda (Fly) Gecchele Stefano (Crystal) Obradovic Tijana (One) Ronchi Fabrizio Zulian Marco (Zuzi) Zecchin Giulia (Star) Maculan Marco (Marcus Mclan)

CAPITOLO 1 Introduzione

REMIND :

(Paragrafo 1.3)

  • Java Virtual Machine: Æ CPU ideale, simulata da un programma in esecuzione sulla CPU effettiva. La JVM perché i codici macchina delle varie CPU (Pentium, Sparc, etc.) hanno linguaggi diversi per le istruzioni macchina. Così facendo tutte le macchine utilizzano lo stesso linguaggio (JVM) Æ Java può essere codificato indistintamente su qualsiasi macchina.
  • Difficile scrivere in linguaggio macchina Æ codificato come numeri.
  • Compilatore Æ traduce enunciati logici del linguaggio ad alto livello (Java) in sequenze di calcoli del codice macchina.

(Paragrafo 1.4)

  • Java pensato per internet, due qualità:
    • sicurezza Æ caratteristiche si sicurezza per garantire che non si possa scrivere applet 1 nocivi;
    • trasferibilità Æ Java opera senza bisogno di modifiche su tutti i sistemi operativi (JVM).

(Paragrafo 1.7) Errori

  • ERRORE DI SINTASSI Æ vi è qualcosa di sbagliato secondo le regole del linguaggio e il compilatore lo trova.
  • ERRORE DI ESECUZIONE (o LOGICO ) Æ il programma è corretto sintatticamente e fa qualcosa, ma non quello che ci si aspettava

Esercizio 1.1 – HelloTester.java Testo: Scrivere un programma che stampi sullo schermo il messaggio “Hello, World!”.

Consigli: /

public class HelloTester { public static void main(String[] args) { // sullo schermo, viene stampato un messaggio di saluti System.out.println("Hello, World"); } }

Esercizio 1.2 – Dave.java (Esercizio P1.1 pag. 25) Testo: Scrivere un programma che visualizzi sullo schermo del terminale il vostro nome all’interno di un rettangolo, come nell’esempio seguente:

| Dave |

Consigli: /

public class Dave

(^1) APPLET: Applicazioni java che vengono eseguite all'interno di broswer web. Servono per visualizzare oggetti

dinamici che altrimenti con l'html sarebbero difficili da mostrare. Per visualizzarli serve la JVM.

public static void main(String[] args) { // si stampa la cornice System.out.println("+ - - +"); // si stampa il nome System.out.println("| Dave |"); // si stampa la cornice System.out.println("+ - - +"); } }

Esercizio 1.3 – Fcentrata.java Testo: Scrivere un programma che visualizzi sullo schermo del terminale la vostra iniziale grande e centrata composta da molti caratteri uguali.

public class Fcentrata { public static void main(String[] args) { System.out.println(" FFFFFFFFFFFFF"); System.out.println(" FFFFFFFFFFFFF"); System.out.println(" FFF"); System.out.println(" FFF"); System.out.println(" FFFFFFFFFF"); System.out.println(" FFFFFFFFFF"); System.out.println(" FFF"); System.out.println(" FFF"); System.out.println(" FFF"); System.out.println(" FFF"); } }

CAPITOLO 2 Utilizzare oggetti

REMIND :

(Paragrafo 2.1) Tipi di variabili:

  • A ogni valore è assegnato un tipo (es. integer).
  • Regole per gli identificatori:
    • possono contenere lettere, cifre, “$”, underscore (“_”), ma non possono iniziare con una cifra.
    • No altri simboli (es. “?” o “!”).
    • NO SPAZI.
    • Non si possono usare parole riservate.
    • greeting ≠ Greeting.
    • Le variabili iniziano con la lettera minuscola, le Classi iniziano con la lettera maiuscola.

(Paragrafo 2.2) Operatore di assegnazione

  • Si usa “=” (es. int n = 7 Æ assegna a n il valore 7).

(Paragrafo 2.4) Parametri e valori restituiti dai metodi

  • Parametri Æ dati in ingresso Es. System.out.println(greeting) greeting = parametro ESPLICITO

b = base; h = altezza; x = ascissa; y = ordinata; } /* si acquisisce la base @return la base del rettangolo / public int getBase() { return b; } / si acquisisce l'altezza @return l'altezza del rettangolo / public int getAltezza() { return h; } / si acquisisce l'ascissa @return l'ascissa del rettangolo / public int getAscissa() { return x; } / si acquisisce l'ordinata @return l'ordinata del rettangolo / public int getOrdinata() { return y; } / si modifica la base @param nuovaBase la nuova misura della base/ public void setBase(int nuovaBase) { b = nuovaBase; } / si modifica l'altezza @param nuovaAltezza la nuova misura dell'altezza/ public void setAltezza(int nuovaAltezza) { h = nuovaAltezza; } / si modifica l'ascissa @param nuovaAscissa la nuova ascissa/ public void setAscissa(int nuovaAscissa) { x = nuovaAscissa; } / si modifica l'ordinata @param nuovaOrdinata la nuova ordinata/ public void setOrdinata(int nuovaOrdinata) { y = nuovaOrdinata; } / si traslano le coordinate nel piano @param trX lo spostamento in ascissa @param trY lo spostamento in ordinata/ public void traslazione(int trX, int trY) { x = x + trX; y = y + trY; } / si calcola il perimetro

@return il perimetro / public int getPerimetro() { return (b + h)2; } /* si calcola l'area @return l'area */ public int getArea() { return b * h; } }

RettangoloTester.java

public class RettangoloTester { public static void main(String[] args) { Rettangolo r = new Rettangolo(); System.out.println("Perimetro: " + r.getPerimetro()); System.out.println("Area: " + r.getArea()); System.out.println("Expected perimetro: 4"); System.out.println("Expected area: 1"); Rettangolo rr = new Rettangolo(5, 3, 9, 2); System.out.println("Perimetro: " + rr.getPerimetro()); System.out.println("Area: " + rr.getArea()); System.out.println("Expected perimetro: 16"); System.out.println("Expected area: 15"); } }

Esercizio 2.2 – Dado.java (Esercizio P2.7 pag. 53) Testo: Scrivere un programma che usi la classe Random per simulare il lancio di un dado, visualizzando un numero casuale compreso tra 1 e 6 ogni volta che viene eseguito.

Consigli: Il seguente programma può essere di difficile comprensione ai neofiti della materia perché viene introdotta la classe Random. Essa, come molte altre classi (Scanner, Rectangle), deve essere importata dalla libreria virtuale di Java, tramite la dicitura "import nomePacchetto.nomeClasse". Si rimanda al ripasso del capitolo 2 l’approfondimento dell’importazione di classi.

Dado.java

import java.util.Random ;

public class Dado { private int numeroFacce; private Random gen;

//costruttore che crea un dado standard a 6 facce public Dado() { numeroFacce = 6; // si inizializza l'oggetto gen della classe Random gen = new Random();

  • Variabili parametro
  • DIFFERENZA Æ tempo di vita

Esercizio 3.1 – BankAccount.java (Esercizio P3.1 – P3.2 pag. 86) Testo: Es. 3.1: scrivere un programma che costruisca un conto bancario chiamato harrysChecking, versi in esso $1000, prelevi da esso $500, prelevi altri $400 e infine visualizzi il saldo rimanente. Il programma deve poi creare un altro conto bancario chiamato momsSaving, utilizzando il costruttore che inizializza la variabile bilance. Su quest’ultimo conto deve essere poi applicato un interesse del 10%, a seguito del quale viene stampato il saldo.

Consigli: Il programma non presenta particolari difficoltà. Si invita a rivedere i consigli dell’esercizio sul rettangolo.

public class BankAccount { private double balance; // si costruisce un conto bancario con saldo uguale a zero public BankAccount() { balance = 0; } /* si costruisce un conto bancario con un saldo assegnato @param initialBalance il saldo iniziale/ public BankAccount(double initialBalance) { balance = initialBalance; } / si versa denaro nel conto bancario @param amount l'importo da versare/ public void deposit(double amount) { balance = balance + amount; } / si preleva denaro dal conto bancario @param amount l'importo da prelevare/ public void withdraw(double amount) { balance = balance - amount; } / s’ispeziona il valore del saldo attuale del conto bancario @return il saldo attuale/ public double getBalance() { return balance; } / si calcola un interesse sul conto @param rate il tasso d'interesse*/ public void addInterest(double rate) { balance = balance + ((balance * rate) / 100); } }

BankAccountTester.java

public class BankAccountTester { public static void main(String[] args) { BankAccount harrysChecking = new BankAccount(); harrysChecking.deposit(1000); harrysChecking.withdraw(500); harrysChecking.withdraw(400); System.out.println(harrysChecking.getBalance()); BankAccount momsSaving = new BankAccount(1000); momsSaving.addInterest(10); //Interessi al 10% System.out.println("Dollars: " + momsSaving.getBalance()); } }

Esercizio 3.2 - BankWithPassword

Testo: Lo scopo del programma è riadattare il programma presente nel libro di testo, introducendo il metodo boolean controlloPassword, che restituisce true se la password inserita corrisponde a quella del conto corrente cercato, e il metodo boolean controlloPrelievo, che restituisce true se la somma inserita è disponibile nel conto corrente.

Consigli: Nel metodo controlloPassword viene utilizzato il costrutto if, che verrà spiegato in dettaglio nei capitoli successivi. In breve, il comando if(…) esegue l’operazione successiva solo se “l’affermazione” contenuta nelle parentesi è vera.

BankWithPassword.java

public class BankWithPassword { private double balance; private int password;

/si costruisce un conto con saldo uguale a zero e password di accesso numerica @param pass password numerica di accesso al conto/ public BankWithPassword(int pass) { balance = 0; password = pass; }

/si costruisce un conto con un saldo assegnato e password di accesso @param initialBalance il saldo iniziale @param pass password di accesso al conto/ public BankWithPassword(double initialBalance, int pass) { balance = initialBalance; password = pass; }

/* si versa denaro nel conto bancario @param amount l'importo da versare*/ public void deposit(double amount) { balance = balance + amount;

//si costruisce un primo conto con saldo iniziale pari a zero e //password definita dall’utente System.out.println("Inserire un numero che sarà password del conto 1"); BankWithPassword conto1 = new BankWithPassword(in.nextInt()); //stampa di verifica dei dati inseriti System.out.println("Il saldo del conto 1 è: " + conto1.getBalance()

  • "\nla password del conto 1 è: " + conto1.getPassword()); //si costruisce un secondo conto con saldo iniziale e //password definiti dall’utente System.out.println("Inserire un numero che sarà password del conto 2"); int temp = in.nextInt(); System.out.println("Inserire il saldo iniziale del conto 2"); BankWithPassword conto2 = new BankWithPassword(in.nextDouble(), temp); //stampa di verifica dei dati inseriti System.out.println("Il saldo del conto 2 è: " + conto2.getBalance()
  • "\nla password del conto 2 è: " + conto2.getPassword()); //si preleva una somma dal conto 2 System.out.println("Prelievo dal conto 2:\nInserire la password del conto 2"); if(conto2.controlloPassword(in.nextInt()))//controlla la password { System.out.println("Inserire la somma da prelevare:"); double amount = in.nextDouble(); //controlla che la somma sia disponibile e in caso //affermativo la preleva if (conto2.controlloPrelievo(amount)) conto2.withdraw(amount); else System.out.println("Somma non disponibile nel conto"); } else System.out.println("Password errata. Impossibile effettuare il prelievo."); //si versa una somma sul conto 1 System.out.println("Versamento sul conto 1:\nInserire la password del conto 1"); if(conto1.controlloPassword(in.nextInt()))//controlla la password { System.out.println("Inserire la somma da versare:"); conto1.deposit(in.nextDouble()); } else System.out.println("Password errata. Impossibile effettuare il versamento."); //stampa un resoconto dei saldi System.out.println("Nuovi saldi:\nconto 1: " + conto1.getBalance() + "\nconto 2: " + conto2.getBalance()); //applica l’interesse sui due conti e stampa i saldi aggiornati conto1.addInterest(3); conto2.addInterest(3); System.out.println("Nuovi saldi con interesse applicato del 3%:"); System.out.println("conto 1: " + conto1.getBalance() + "\nconto 2: "
  • conto2.getBalance()); } }

Esercizio 3.3 – Car.java (Esercizio P3.6 pag. 87) Testo:

Progettare e realizzare una classe Car(automobile) con le proprietà seguenti. Un’automobile ha una determinata resa del carburante (misurata in miglia/galloni o in litri/chilometri: scegliete il sistema che preferite) e una certa quantità di carburante nel serbatoio. La resa è specificata dal costruttore e il livello iniziale del carburante è a zero. Fornire questi metodi: un metodo drive per simulare il percorso di un’automobile per una certa distanza, riducendo il livello di carburante nel serbatoio; un metodo getGas, per ispezionare il livello corrente del carburante; un metodo addGas per far rifornimento.

Consigli: S’invita a porre particolare attenzione al metodo drive(double km), che calcola il livello di carburante dopo un certo percorso.

public class Car { // quantità di carburante nel serbatoio private double gas; // prestazioni della vettura private double kmL; // si costruisce un'automobile con carburante uguale a zero public Car(double resa) { kmL = resa; gas = 0; } /* Calcola il livello di carburante rimasto dopo un certo percorso @param km i chilometri percorsi/ public void drive(double km) { gas = gas - (km / kmL); } / ispeziona il livello di carburante rimasto @return il carburante rimasta/ public double getGas() { return gas; } / aggiunge carburante nel serbatoio @param rifornimento il carburante da aggiungere*/ public void addGas(double rifornimento) { gas = gas + rifornimento; } }

CarTester.java public class CarTester { public static void main(String[] args) { Car ibiza = new Car(20); ibiza.addGas(20); ibiza.drive(100); System.out.println(ibiza.getGas()); } }

Esercizio 3.3 b – Car.java Testo: Modificate la classe Car dell'esercizio precedente aggiungendo una nuova variabile d'istanza String carburante. Se tale variabile vale "verde", allora l'automobile consuma benzina verde, se tale variabile vale "gasolio", allora l'automobile consuma gasolio. Scrivere inoltre un nuovo metodo predicato boolean

Esercizio 3.3 c – DistributoreBenzina.java Testo: Progettare una classe di nome DistributoreBenzina, per rappresentare un distributore di carburante per automobili. Tale classe prevede due variabili d'istanza. La prima variabile d'istanza e' chiamata deposito, e' di tipo double, e contiene il quantitativo di benzina disponibile al distributore. La seconda variabile d'istanza e' chiamata euroPerLitro, e' di tipo double, e rappresenta il prezzo della benzina, espresso in euro per litro. La classe deve implementare un costruttore public DistributoreBenzina(double unPrezzoPerLitro), che prende come parametro esplicito il prezzo in euro per un litro di benzina. La quantita' iniziale di benzina disponibile e' zero. La classe deve inoltre implementare i seguenti metodi. Un metodo definito come public void rifornisci(double unaQuantita), che rifornisce il distributore di benzina. Un metodo definito come public void vendi(double euro), che vende una quantita' di benzina corrispondente all'ammontare di euro pagato, specificato dal parametro esplicito del metodo. Infine, un metodo definito come public void aggiorna(double unPrezzoPerLitro), che aggiorna il prezzo della benzina.

public class DistributoreBenzina {

//variabile d'istanza quantitativo disponibile al distributore private double deposito; //variabile d'istanza prezzo della nenzina private double euroPerLitro; //costruosci la classe DistributoreBenzina public DistributoreBenzina (double unPrezzoPerLitro) { euroPerLitro = unPrezzoPerLitro; deposito = 0; } /rifornisci di benzina il deposito @param unaQuantita quantità rifornita/ public void rifornisci(double unaQuantita) { deposito = deposito + unaQuantita; } /il deposito diminuisce @param euro quantitavi in euro venduto/ public void vendi(double euro) { deposito = deposito - euro/euroPerLitro; } /aggiorna il prezzo della benzina @param aggiorna il nuovo prezzo di un litro/ public void aggiorna(double unPrezzoPerLitro) { euroPerLitro = unPrezzoPerLitro; } public double getBenzina() { return deposito; } }

public class DistributoreBenzinaTester {

public static void main(String[] args) { DistributoreBenzina esso = new DistributoreBenzina(1.20); esso.rifornisci(1000.0); esso.vendi(70.0);

System.out.println(esso.getBenzina()); System.out.println("Expected: 940"); esso.vendi(30.0); System.out.println(esso.getBenzina()); System.out.println("Expected: 910"); esso.aggiorna(1.30); esso.vendi(20.0); System.out.println(esso.getBenzina()); System.out.println("Expected: 901.2821"); } }

Esercizio 3.3 d – DistributoreBenzina.java

Testo: Modificare la classe DistributoreBenzina, assegnata nell’esercizio precedente, in modo che il distributore abbia due pompe, una di benzina verde ed una di gasolio. Ciascun tipo di carburante ha il suo costo per litro. Conseguentemente, dovrete raddoppiare il metodo rifornisci: dovrete avere un metodo per rifornire la benzina verde ed un metodo per rifornire il gasolio. Il metodo vendi deve essere modificato nel seguente modo: public void vendi(double euro, Car unaAutomobile). Tale metodo rifornisce l'automobile specificata come parametro esplicito nel modo appropriato (verde oppure gasolio).

Consigli: Nel Tester create varie automobili e distributori. Fate compiere alcuni "viaggi" alle automobili, e rifornitele di benzina in modo appropriato. Inoltre, rifornite le pompe di benzina in caso di necessita'.

Distributore Benzina.java

public class DistributoreBenzina {

//variabile d'istanza quantitativo disponibile al distributore private double deposito; //variabile d'istanza prezzo della benzina private double euroPerLitro; //variabile d'istanza tipo di benzina private String carburante;

//costruosci la classe DistributoreBenzina public DistributoreBenzina (double unPrezzoPerLitro,String aCarburante) { carburante = aCarburante; euroPerLitro = unPrezzoPerLitro; deposito = 0; } /rifornisci di benzina il deposito @param unaQuantita quantità rifornita/ public void rifornisciVerde(double unaQuantita) { deposito = deposito + unaQuantita; } /rifornisci di benzina il deposito @param unaQuantita quantità rifornita/ public void rifornisciGasolio(double unaQuantita) { deposito = deposito + unaQuantita; } /il deposito diminuisce @param euro quantitativi in euro venduto/

gas.vendi(20,golf);

golf.drive(10); System.out.println("l'auto ha ancora " + golf.getGas() + "litri"); System.out.println("il distributore ha ancora " + gas.getGas() + "litri"); } }

Esercizio 3.4 – Employee.java (Esercizio P3.4 – Esercizio P3.5 pag. 87) Testo: Esercizio 3.4: Progettare e realizzare una classe Employee(dipendente). Ciascun dipendente ha un nome (di tipo stringa) e uno stipendio (di tipo double). Scrivere un costruttore senza parametri, un costruttore con due parametri (nome e stipendio), e i metodi per conoscere nome e stipendio. Scrivere un breve programma per collaudare la classe. Esercizio 3.5: Sviluppare la classe dell’esercizio precedente, aggiungendo un metodo raiseSalary(double byPercent), che incrementi lo stipendio del dipendente secondo una certa percentuale

Consigli: Il libro vorrebbe che si facessero due costruttori: uno con i parametri e uno senza parametri. È preferibile fare un costruttore senza parametri e in seguito impostare i valori dei campi con dei metodi (setNome(), setStipendio()). Il seguente esercizio è simile a quelli precedenti. Lo scopo risulta semplicemente acquisire una metodologia di lavoro. Da notare che inizialmente al nome viene fatto assumere il valore null: Questo particolare valore verrà spiegato dettagliatamente nei capitoli successivi.

public class Employee { private String nome; private double stipendio; public Employee() { nome = null; stipendio = 0; } /* si restituisce il nome del dipendente @return il nome del del dipendente/ public String getNome() { return nome; } / si restituisce lo stipendio del dipendente @return lo stipendio/ public double getStipendio() { return stipendio; } / si modifica il valore di stipendio @param s il nuovo valore dello stipendio/ public void setStipendio(double s) { stipendio = s; } / si modifica il valore di nome @param s il nuovo nome*/ public void setNome(String n) { nome = n; }

/* s’incrementa lo stipendio del dipendente @param byPercent il tasso di aumento dello stipendio*/ public void raiseSalary (double byPercent) { stipendio = stipendio + ((stipendio * byPercent) / 100); } }

public class EmployeeTester { public static void main(String[] args) { // si crea un oggetto di classe Employee Employee d = new Employee(); // si crea un nuovo dipendente d.setNome("Rossi"); // s’inserisce il valore dello stipendio d.setStipendio(1000); // s’incrementa del 10% lo stipendio d.raiseSalary(10); // si restituiscono i valori richiesti System.out.println(d.getNome() + " = " + d.getStipendio()); } }

CAPITOLO 4 Tipi di dati fondamentali

REMIND :

(Paragrafo 4.1) Tipi di numeri

  • BigInteger Æ classe con rispettivi metodi: non è un tipo primitivo, si usa con numeri molto grandi.
  • BigDecimal Æ come BigInteger. Consente di effettuare calcoli in virgola mobile senza errori di approssimazione.
  • Con valori in virgola mobile bisogna tenere presente il problema degli errori di arrotondamento
  • (int) Æ cast, converte in numero intero ignorandone la parte frazionaria (es. 13.75 Æ 13)
  • Usate long per arrotondare un numero in virgola mobile: se il valore assoluto è elevato int potrebbe non essere sufficiente: long n = Math.round(d); (13.75 Æ 14)

(Paragrafo 4.2) Costanti

  • final Æ indica le costanti in Java
  • Si usano le lettere maiuscole (es. MAX_VALUE)
  • Se si usano in più metodi si devono dichiarare insieme alle variabili d’istanza
  • Non c’è pericolo nel dichiararle come “public” perché non possono essere modificate

(Paragrafo 4.4) Aritmetica e funzioni matematiche

  • “/” Æ divisione (es. 15 / 4)
  • Se si dividono numeri interi, il risultato sarà un intero (es. 15 / 4 = 3)
  • “%” (percentuale) Æ resto (es. 15 % 4 = 3)

(Paragrafo 4.5) Invocare metodi statici

  • Non agiscono su alcun oggetto