Buongiorno a tutti ho bisogno di un po' di aiuto!!!
piu' precisamente ho bisogno che qualcuno mi spieghi cosa fare e come fare questo esercizio.. purtroppo nn frequento molto l'univ in questo periodo e ho un es da consegnare entro venerdì.. nn voglio che me lo fate e io lo copio come un oca volgio che mi aiutate a capire..
il testo dell'es è questo:
Modificare il ContatoreFermabile
- Vogliamo comunicare il fatto che un incremento o un descremento fatto su un contatore congelato (fermato) e’ una condizione di errore.
- Modificare la classe ContatoreFermabile (o se necessario anche la classe Contatore) in modo tale che:
I metodi incr e decr sollevino una eccezione se chiamati su un contatore che e’ congelato.
Se ne devono fare 2 versioni (cioe’ 2 programmi diversi):
1. Il primo in cui l’ eccezione e’ una eccezione RunTimeException (o una sua sottoclasse)
2. Il secondo in cui l’ eccezione e’ una sottoclasse di Exception che potete chiamare ContatoreNonModificabile
Cosa succede alla classe Contatore in entrambe le alternative
3 E ora…. I packages
- Consideriamo la seconda alternativa in cui si e’ definita una classe ContatoreNonModificabile.
- Fate in modo che le classi delle eccezioni e quelle dei contatori siano in 2 packages diversi (che potete chiamare: contatori ed eccezioni). Cioe’
a. Piazzate le classi nelle directory giuste
b. Usate le istruzioni package ed import giuste
c. In modo tale da non dover modificare niente nelle classi.
l'es precedente a cui fa riferimento è questo:
class Contatore
{
static int numContatori = 0;
private int c;
// Costruttori
Contatore (int i)
{
c = i;
++numContatori;
}
Contatore()
{
this(0); // richiama Conta con parametro 0
}
// altri metodi
void incr()
{
++c;
}
void decr()
{
--c;
}
int val()
{
return c;
}
}
class ContatoreFermabile extends Contatore
{
private boolean stop;
ContatoreFermabile()
{
super(0);
stop=false;
}
ContatoreFermabile(int i)
{
super(i);
stop=false;
}
void fermo()
{
stop=true;
}
void riparti()
{
stop=false;
}
void incr()
{
if (!stop)
super.incr();
}
void decr()
{
if (!stop)
super.decr();
}
boolean statoStop()
{
return stop;
}
}
public class TestCont{
public static void main (String[] args)
{
// dichiaro un oggetto di tipo quadrato
ContatoreFermabile cf;
cf = new ContatoreFermabile (5);
System.out.println("Il contatore vale "+cf.val());
cf.incr();
cf.fermo();
cf.incr();
System.out.println("Il contatore "+cf.val()+" è: " + cf.statoStop());
cf.riparti();
cf.decr();
cf.decr();
System.out.println("Il contatore "+cf.val()+" è: " + cf.statoStop());
}
}
chi mi da un help???
grazie!