Classi e oggetti in Java

Qui trovi un insieme di esercizi che ti permetteranno di metterti alla prova con la creazione delle classi e degli oggetti.
Realizza la tua soluzione e poi confronta la tua soluzione con quella proposta dal professore. 

Esercizi sulla progettazione delle classi in Java

Esercizio 1: La classe Giocatore

Progettare la classe Giocatore come descritta dal diagramma UML all'interno del file Giocatore.java.
La classe Giocatore deve contenere:

1-8. Metodi get e setter per tutti gli atributi;
9. Il metodo calcolaGoalTotali() in grado di calcolare la somma dei goal fatti dal giocatore tra il club e la nazionale;
10. Il metodo toString per poter creare una stringa in grado di mostrare i valori contenuti all'interno del Giocatore.

Infine, creare un secondo file TestGiocatore.java  dove poter creare i seguenti tre oggetti di tipo Giocatore:

Esercizio 2: La classe Smartphone

Progettare la classe Smartphone come descritta dal diagramma UML all'interno del file Smartphone.java.
La classe Smartphone deve contenere:

Infine, creare un secondo file TestSmartphone.java  dove poter creare i seguenti due oggetti di tipo Smartphone:

N.B. nel file TestSmartphone.java va controllato l'input dell'utente! Ossia bisogna assicurarsi che i valori inseriti da tastiera siano ammissibili.

Esercizio 3: Il triangolo rettangolo 

Progettare la classe TriangoloRettangolo che abbia:

Per prima cosa si realizzi il diagramma UML della classe TriangoloRettangolo (con draw.io o software simili) e si proceda ad implementarla all'interno del file TriangoloRettangolo.java

In una nuova classe chiamata TestTriangoloRettangolo.java istanziare due oggetti di tipo TriangoloRettangolo usando per il primo oggetto il costruttore di default e per il secondo oggetto il costruttore parametrizzato. 

Poi visualizzare a video le seguenti informazioni: 

Il programma deve avere un menù di scelta ed essere iterativo.

Esercizio 4: La classe Libro

Progettare e produrre la documentazione (la java doc) relativa al codice della classe Libro. Tale classe deve avere:

Per prima cosa si realizzi il diagramma UML della classe Libro (con draw.io o software simili) e si proceda ad implementarla all'interno del file Libro.java

In una nuova classe chiamata TestLibro.java istanziare due oggetti di tipo Libro usando per il primo oggetto il costruttore di default e per il secondo oggetto il costruttore parametrizzato, consentendo sempre all'utente di inserire i valori dei due libri da tastiera.

Poi visualizzare a video le seguenti informazioni: 

Il programma deve avere un menù di scelta ed essere iterativo.

Per la documentazione ricorda di creare prima della definizione di ogni metodo un commento che inizia con /**.  Dopo aver scritto la documentazione di tutti i metodi, su Eclipse cliccare su Project --> Generate javadoc.  Infine, andare sulla cartella dove si trova il progetto, accedere alla cartella doc --> libro. In questa cartella troverai il file Libro.html che potrai aprire con un browser e leggere la documentazione della tua classe. 

Esercizio 5: La classe Cane

Realizzare la classe Cane che abbia tre attributi:

Di tale classe si implementi i costruttore di default, quello parametrizzato, i metodi get, set ed il metodo toString.

Implementare la classe MainCane in cui il metodo main permetta di:

Una volta completati i due file si documenti la classe ed i metodi realizzati.

Realizzare il diagramma UML della classe.

Esercizio 6 : La classe Studente

Realizzare la classe Studente che abbia due attributi:

Di tale classe si implementi i costruttore di default, quello parametrizzato, i metodi get, set ed il metodo toString.

Implementare la classe TestStudente in cui il metodo main permetta di creare due oggetti:

Una volta completati i due file si documenti la classe ed i metodi realizzati e rendere il main iterativo.

Esercizio 7: La classe Libro (costruttore di copia)

Realizzare la classe Libro che prevede:

Creare il metodo main in cui:

In questo esercizio non è richiesto l'uso della classe Scanner.

Esercizio 8 : La classe Computer  (costruttore di copia)

Realizzare la classe Computer che abbia i seguenti 4 attributi:

Di tale classe si implementi i costruttore di default, quello parametrizzato, costruttore di copia, i metodi get, set ed il metodo toString.

Implementare la classe TestComputer in cui il metodo main permetta di:

La ram di c2 quanto vale? E perché? 

Esercizio 8bis : Classe a piacere  

Realizzare una classe a piacere che abbia almeno 4 attributi:

Si realizzi il diagramma delle classi.

Di tale classe si implementi i costruttore di default, quello parametrizzato, costruttore di copia, i metodi get, set, il metodo inserisciDati ed il metodo toString.

Implementare una classe di test in cui il metodo main permetta di:

Esercizio 9 : La classe Mouse  (metodo equals)

Realizzare la classe Mouse che abbia i seguenti 3 attributi:

Di tale classe si implementi i costruttore di default, quello parametrizzato, costruttore di copia, i metodi get, set, equals ed il metodo toString.

Implementare la classe TestMouse in cui il metodo main permetta di:

Esercizio 10: La classe Automobile (metodo equals)

Realizzare il class diagram della classe Automobile prevedendo:

Scrivere il codice della classe Automobile nel file "Automobile.java" e commentare opportunatamente il metodo costruttore copia ed il metodo equals.

Implementare nel file "MainAutomobile.java" il metodo main che deve permettere almeno di:

Esercizio 11: La classe che rappresenta uno strumento musicale (metodo inserimento dati da tastiera)

Realizzare il class diagram della classe Strumento prevedendo:

Scrivere il codice della classe Strumento nel file "Strumento.java" e commentare opportunatamente il metodo costruttore copia ed il metodo equals.

Implementare nel file "MainStrumento.java" il metodo main che deve permettere almeno di:

Esercizio 12: La classe che rappresenta un Puzzle (metodo inserimento dati da tastiera)

Realizzare il class diagram della classe Strumento prevedendo:

Scrivere il codice della classe Puzzle nel file "Puzzle.java".

Implementare nel file "MainPuzzle.java"  il metodo main che deve permettere almeno di:

Esercizio 13:  Il punto nel piano cartesiano 

Partendo dal diagramma UML della classe riportato di fianco realizzare la classe PuntoCartesiano.

Il metodo quadrante ritorna una stringa che indica il quadrante dove si trova il punto cartesiano (qui trovi un'immagine che ti ricorda i quattro quadranti del piano cartesiano). Indicare anche se il punto non si trova in un  quadrante preciso, bensì si trova nell'origine, nei punti dell'asse x o nei punti dell'asse y.

Il metodo distanza ritorna la distanza tra:

(clicca qui se non ricordi la formula per calcolare la distanza tra due punti).

Il metodo rettaPassantePerDuePunti ritorna una stringa indicante l'equazione della retta passante per:

(clicca qui se non ricordi come si calcola la retta passante per due punti).

Scrivere il codice del metodo main nel file MainPuntoCartesiano.java. Nel metodo main svolgere le seguenti azioni:

Esercizio 14Il sensore di temperatura 

In una smart city sono diffusi diversi sensori di temperatura. Ogni sensore è caratterizzato da una posizione (latitudine e longitudine) e da una temperatura rilevata (in gradi Celsius). Tali sensori sono utilizzati dalla città per poter localizzare eventuali rischi di incendi in città. 

Vi è un rischio di incendio nel momento in cui due sensori diversi che si trovano ad una distanza inferiore di 15metri registrano entrambi una temperatura maggiore di 60°

In caso di incendio l'applicazione deve essere in grado di indicare il punto medio rispetto al quale si trovano i due sensori che hanno registrato tali temperature e mostrare a schermo un messaggio di ALLERTA. 

Progettare la classe SensoreTemperatura, realizzando diversi metodi in grado di confrontare due oggetti di tipo SensoreTemperatura:

Infine, realizzare una classe MainSensoreTemperatura in grado di far inserire all'utente i valori relativi a quattro coppie di sensori. Per ogni coppia il programma deve analizzare se i due sensori danno luogo ad un'ALLERTA incendio oppure no.

**Sfida: Nel main puoi memorizzare n sensori in un vettore (i cui valori puoi anche generarli in maniera random). In seguito, confrontare tutte le coppie di sensori possibili e indicare in output tutte le allerte incendio che ne derivano da tali coppie di sensori.