Să se creeze o clasă denumită Dreptunghi. Clasa are atributele lungime şi latime, fiecare iniţializate implicit cu 1, şi metode care calculează perimetrul şi aria dreptunghiului. În plus, clasa conţine metode set şi get pentru ambele atribute. Metodele set ar trebui sa verifice faptul că lungimea şi lăţimea au valori reale între 0.0 şi 20.0 . Să se scrie o altă clasă care verifică funcţionalitatea clasei Dreptunghi. (In JAVA POO)
Să se creeze o clasă denumită Dreptunghi care este putin mai complicată decât cea din problema anterioară. Această clasă stochează numai coordonatele colţurilor dreptunghiului. Constructorul apelează o metodă set() care acceptă patru seturi de coordonate şi verifică dacă acestea nu au coordonatele x şi y mai mari de 20.0. De asemenea, verifică faptul că cele 4 seturi de coordonate specifică un dreptunghi. Metodele acestei clase calculează lungimea, lăţimea, perimetrul şi aria fiecărui dreptunghi. Includeţi o metodă booleană estePatrat() care determină dacă dreptunghiul este pătrat. Sǎ se scrie o altă clasă careverifică funcţionalitatea acestei clase. (In jAVA POO)
Răspunsuri la întrebare
Răspuns:
public class Dreptunghi
{
protected float lungime = 1;
protected float latime = 1;
public float getLungime()
{
return this.lungime;
}
public void setLungime(float lungime)
{
if (lungime < 0 || lungime > 20) {
throw new IllegalArgumentException("trebuie să fie între 0 și 20");
}
this.lungime = lungime;
}
public float getLatime()
{
return this.latime;
}
public void setLatime(float latime)
{
if (latime < 0 || latime > 20) {
throw new IllegalArgumentException("trebuie să fie între 0 și 20");
}
this.latime = latime;
}
public float perimetru()
{
return this.lungime * 2 + this.latime * 2;
}
public float arie()
{
return this.lungime * this.latime;
}
}
public class VerificareDreptunghi
{
public static void main(String[] args)
{
Dreptunghi dreptunghi = new Dreptunghi();
System.out.format("Perimetrul unui dreptunghi %.2f pe %.2f este %.2f\n", dreptunghi.getLungime(), dreptunghi.getLatime(), dreptunghi.perimetru());
System.out.format("Aria unui dreptunghi %.2f pe %.2f este %.2f\n", dreptunghi.getLungime(), dreptunghi.getLatime(), dreptunghi.arie());
dreptunghi.setLungime(5);
dreptunghi.setLatime(3);
System.out.format("Perimetrul unui dreptunghi %.2f pe %.2f este %.2f\n", dreptunghi.getLungime(), dreptunghi.getLatime(), dreptunghi.perimetru());
System.out.format("Aria unui dreptunghi %.2f pe %.2f este %.2f\n", dreptunghi.getLungime(), dreptunghi.getLatime(), dreptunghi.arie());
dreptunghi.setLungime(25); // aici va crăpa
dreptunghi.setLatime(23); // aici nu va ajunge
}
}
Explicație:
Presupun că doar atât vroiau ca verificare și nu folosirea unui test framework.