Tak googlowałem ale znaleźć nie mogłem jak w Javie zmienić liczby ujemne na dodatnie, że każda niedozwolona liczba jak np. -1 zmieniała się na 1 itd.
1.Wykorzystaj jednoargumentowy operator -
, tj.: zmienna = -zmienna;
.
2.Albo odejmij tę liczbę od zera ;-)
3.Albo wykorzystaj abs
.
Czyli muszę użyć abs na zasadzie this.height = Math.abs(0) czy jak?
public prostopadloscian() {
this.height =0;
this.length=0;
this.width=0;
}
public prostopadloscian(double h, double l, double w) {
this.height=h;
this.length=l;
this.width=w;
}
public double getHeight(){
return this.height;
}
public double getLength(){
return this.length;
}
public double getWidth(){
return this.width;
}
double calculateVolume(){
return(this.length*this.width*this.height);
public prostopadloscian(double h, double l, double w) {
this.height = Math.abs(h);
this.length = Math.abs(l);
this.width = Math.abs(w);
}
Nie rób tak.
Nie można skonstruować prostopadłościanu o ujemnych wymiarach, zatem imho powinieneś rzucać w konstruktorze/setterze odpowiedni wyjątek, a nie bawić się w naprawę tego, co użytkownik wprowadził.
Plus trzymaj się jednorodnego nazewnictwa - w języku angielskim istnieje odpowiednie słowo na prostopadłościan
.
Zawsze UJEMNĄ liczbę możesz też pomnożyć przez -1. To tak w ramach ciekawostki matematycznej ;)
Pytanie jak ten wyjątek napisać...
public class Test3 {
public static void main(String []args){
int x;
x = -1; // jesli przypiszesz referencje do x do wartosci mniejszej od 0, zostanie zwrocony wyjatek
if(x < 0){
throw new OjOjOjException("dziwne, u mnie dziala");
}
System.out.println("Wykonuje program dalej...");
}
}
public class OjOjOjException extends RuntimeException{
OjOjOjException(String message){
super(message);
}
}
Moim zdaniem rzucanie wyjątkiem jest w tym zadaniu kiepskim pomysłem - wystarczy zwykłym ifem sprawdzić czy długości boków nie są ujemne.
Rzucanie wyjątku z konstruktora można napisać tak:
public Cuboid(double h, double l, double w) throws IllegalArgumentException
{
if(h < 0 || l < 0 || w < 0)
{
throw new IllegalArgumentException("Długości boków nie mogą być ujemne");
}
this.height = h;
this.length = l;
this.width = w;
}