Jag skulle helt klart använda alternativ 1, allt för att slippa en if-sats :)
Hej!
Kom inte på någon bättre topic. Jag har en enkel fråga om hur jag bäst ska lösa en liten metod.
Låt oss säga att jag har två överlagrade konstruktorer i en klass som skapar en rektangel. Den ena tar emot 1 sidaX och den andra sidaX och sidaY. Den som bara tar emot sidaX ska användas om man vill skapa en kvadrat. Jag har sedan en metod som räknar ut arean och jag undrar kortfattat vilken variant som är att föredra, och varför.
alt1. Där jag automatiskt sätter värdet till sidaY detsamma som värdet på sidaX. Metoden för att räkna ut arean sker rakt av
public cRectangle2(int newRectangleSideX){
rectangleSideX = newRectangleSideX;
rectangleSideY = newRectangleSideX;
}
public int area(){
int rectangleArea = 0;
rectangleArea = (getSideY() * getSideX());
return rectangleArea;
}
alt2. Sätter bara värdet på sidaX men i metoden för area kollar jag om sidaY är noll osv.
public cRectangle(int newRectangleSideX){
rectangleSideX = newRectangleSideX;
}
public int area(){
int rectangleArea = 0;
if (getSideY() == 0)
{
rectangleArea = (getSideX() * getSideX());
}
else
{
rectangleArea = (getSideY() * getSideX());
}
return rectangleArea;
}
tacksam