Si definisca una classe Point che descrive un punto nel piano
cartesiano (quindi una coppia di coordinate x,y). Si definiscano,
testandoli via via, i seguenti costruttori e metodi:
un costruttore a partire da due coordinate
un costruttore senza parametri che inizializza il punto
all'origine ((0,0))
un metodo, ridefinizione di toString, che visualizzi in modo
opportuno le informazioni relative al punto
due metodi che spostano il punto rispettivamente orizzontalmente e
verticalmente di una certa distanza
un metodo che stabilisce se il punto e' uguale (come coordinate) ad un
altro punto
Si definisca una classe Circle che estende la
precedente. Un cerchio e' un punto che, oltre alle coordinate x e y del centro, ha un
raggio.
Si definiscano, testandoli via via, i seguenti costruttori e metodi:
un costruttore senza parametri che inizializzi il cerchio a "origine con raggio uno"
un costruttore a partire da due coordinate e un raggio
un costruttore a partire da due coordinate, che assegni come
raggio uno
un metodo, ridefinizione di toString, che visualizzi in modo
opportuno le informazioni relative al cerchio
un metodo che scali la dimensione del cerchio di una certa quantita', moltiplicandone il raggio per tale quantita'
un metodo che stabilisce se il cerchio e' uguale ad un
altro punto cerchio
Si definisca una classe UsePoints in cui, nel metodo
main , si
dichiarino le variabili P di tipo Point e C di tipo
Circle.
Si assegni alla variabile C un oggetto Circle e alla
variabile P un oggetto che sara' Point o Circle a seconda
di una scelta effettuata dall'utente, come nel codice seguente:
int cond
= console.readInt(); if (cond > 0) P = new Point(10,
10); else P = new Circle
(10,10,4);
Si invochino i metodi definiti per le classi su tali oggetti e se
ne osservi il comportamento.
Si completi la definizione della classe Point con
i seguenti metodi:
un metodo che calcola la distanza rispetto ad un altro punto
un metodo che calcola la distanza dall'origine
un metodo che stabilisce se il punto e' piu' vicino o no all'origine
rispetto ad un altro punto
Si completi la definizione della classe Circle con
i seguenti metodi:
un metodo che calcola l'area del cerchio
un metodo che calcola il perimetro del cerchio
un metodo che calcola la distanza del cerchio dall'origine
(intesa come la distanza dall'origine del punto del cerchio piu' vicino all'origine)
Si modifichi la definizione di UsePoints in modo
da testare il funzionamento dei nuovi metodi.
Scrivere una classe Data
per la gestione delle date.
Derivare quindi una classe DataEOra
che permetta di gestire sia la data che l'ora.
Inserire nella classe un esempio di overloading e uno di overriding.
Scrivere quindi un programma per collaudare le classi e i metodi.