public SimpleMug(int maxCapacity, String liquidKind) {
if (maxCapacity < 0)
MAX_CAPACITY = 0;
else
MAX_CAPACITY = maxCapacity;
this.currAmount = 0;
this.liquidKind = liquidKind;
if (this.liquidKind == null)
this.liquidKind = "";
SimpleMug.mugCounter++;
}
Here's another solution that uses the selection (conditional) operator:
public SimpleMug(int maxCapacity, String liquidKind) {
MAX_CAPACITY = (maxCapacity < 0) ? 0 : maxCapacity;
currAmount = 0;
this.liquidKind = (liquidKind == null) ? "" : liquidKind;
SimpleMug.mugCounter++;
}
public int fill(int amount) {
int newCurr = currAmount + amount;
int overflow;
if (newCurr > maxCapacity) {
currAmount = maxCapacity;
overflow = newCurr - maxCapacity;
} else {
currAmount = newCurr;
overflow = 0;
}
return overflow;
}
There are many ways to write this. Here's an answer that is commonly given (but less than ideal -- see below):
public boolean isSquare() {
return height == width;
}
Here's a way that is more complicated but preferable because the dimensions of the square are doubles. It tests that height and width are "sufficiently close" to each other.
public boolean isSquare() {
final double EPSILON = 0.0000000000001;
return Math.abs(height - width) < EPSILON;
}
public boolean contains(Point p) {
int x_ul = upperLeft.getX(), y_ul = upperLeft.getY(),
x_p = p.getX(), y_p = p.getY(); // having shorter names will be useful
if ( (x_ul < x_p && x_p < x_ul + width) &&
(y_ul - height < y_p && y_p < y_ul) )
return true;
else
return false;
// or, even better, discard the if-else and just return the
// value calculated in the boolean expression, i.e.,
//
// return (x_ul < x_p && x_p < x_ul + width) &&
// (y_ul - height < y_p && y_p < y_ul)
}
Method 1: use multiple, nested if-elses
if (days < 2)
procrastinate = false;
else if (days > 5)
procrastinate = true;
else // 2 <= days <= 5
if (temp > 70)
procrastinate = true;
else if (temp > 55 && !isRaining)
procrastinate = true;
else
procrastinate = false;
Method 2: use only one if-else
if ( (days > 5) ||
( days >=2 && ( temp > 70 || (temp >55 && !isRaining) ) ) )
procrastinate = true;
else
procrastinate = false;
Method 3: use no ifs
procrastinate = (days > 5) || ( days >=2 && ( temp > 70 || (temp >55 && !isRaining) ) );