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 quadrato 

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

Infine, creare un secondo file TestQuadrato.java  dove permettere all'utente di poter creare un oggetto di tipo quadrato (in maniera iterativa) facendogli scegliere il dato di input da inserire tra:

Al termine della creazione dell'oggetto mostrare a schermo l'oggetto creato e permettere all'utente di creare un nuovo oggetto di tipo Quadrato.

Esercizio 4: 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 5: 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 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 Canzone e la playlist preferita 

Realizzare la classe Canzone che i seguenti tre attributi: nome, cantante e durata. Di tale classe si implementi i costruttore di default, quello parametrizzato, i metodi get, set ed il metodo toString.

Implementare la classe MainCanzone in cui il metodo main deve permettere all'utente di inserire la propria playlist preferita. In particolare nele main si deve:

Si realizzi il class diagram per la classe Canzone e si documenti il codice.

Esercizio 8: La prima classe che contiene un vettore di oggetti come attributo 

Riprendere la classe Canzone definita nell'esercizio 7. Creare adesso la classe Playlist che ha un solo attributo: playlist. Tale attributo è un vettore di tipo Canzone. Di tale classe si implementi:

Il metodo main deve consentire di creare una playlist.
Una volta creata la playlist avviare un menu iterativo in grado di:

Esercizio 9: La classe Libro con il costruttore di copia

Realizzare la classe Libro che prevede:

Creare il metodo main in cui:

Esercizio 10: La classe Libreria

Partendo dalla classe Libro, creare adesso la classe Libreria che prevede:

Il metodo main deve consentire di creare una Libreria. Per creare la libreria seguire i seguenti passi:

Infine, mostrare a schermo la libreria ed il prezzo medio dei libri contenuta in essa.

Esercizio 11: La classe Automobile (uso metodo equals e metodo inserimento dati da tastiera)

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 12:  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 13Il 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.