## Forum Stats

• 3,838,748 Users
• 2,262,397 Discussions

Discussions

# Can someone help me with equals()?

Im new at Java so i dont understand too much. Im studing computer engineering and our teacher asked us to complete the followin code:

// Represents a rectangle

public class Rectangle {

// Initializes a new rectangle with the values passed by parameter .

// Throws IllegalArgumentException if a a negative value is passed to any of

// the dimensions .

public Rectangle ( int base , int height ) { }

// Copy constructor

public Rectangle ( Rectangle r ) { }

// Getters

public int getBase () { }

public int getHeight () { }

// Setters . Throw IllegalArgumentException if the parameters are negative .

public void setBase ( int base ) { }

public void setHeight ( int height ) { }

// Return true if the rectangle is a square

public boolean isSquare () { }

// Calculate the area of the rectangle .

public int area () { }

// Calculate the perimeter of the rectangle .

public int perimeter () { }

// Calculate the length of the diagonal

public double diagonal () { }

// Turn this rectangle 90 degrees ( changing base by height ).

public void turn () { } // Ensure that this rectangle is oriented horizontally ( the base is greater // or equal than the height ).

public void putHorizontal () { } // Ensure that this rectangle is oriented vertically ( the height is greater // or equal than the base ).

public void putVertical () { }

// Two rectangles are equal if the base and the height are the same . // It does not take into account if the rectangle is rotated .

public boolean equals ( Object obj ) { }

// It complies with the hashCode contract and is consistent with the equals .

public int hashCode () { } }

I made it to the followin point:

package e3;

// Represents a rectangle

public class Rectangle {

private int height;

private int base;

// Initializes a new rectangle with the values passed by parameter .

// Throws IllegalArgumentException if a a negative value is passed to any of

// the dimensions .

public Rectangle ( int base , int height ) {

if (base <= 0 || height <= 0) {

throw new IllegalArgumentException();

}

this.base=base;

this.height=height;

}

// Copy constructor

public Rectangle ( Rectangle r ) {

this.base=r.base;

this.height=r.height;

}

// Getters

public int getBase () {

return base;

}

public int getHeight () {

return height;

}

// Setters . Throw IllegalArgumentException if the parameters are negative .

public void setBase ( int base ) {

if (base < 0) {

throw new IllegalArgumentException();

}

this.base = base;

}

public void setHeight ( int height ) {

if ( height < 0) {

throw new IllegalArgumentException();

}

this.height = height;

}

// Return true if the rectangle is a square

public boolean isSquare () {

if(height==base){

return true;

}

return false;

}

// Calculate the area of the rectangle .

public int area () {

int area;

area = base*height;

return area;

}

// Calculate the perimeter of the rectangle .

public int perimeter () {

int perimeter;

perimeter =(2*height)+(2*base);

return perimeter;

}

// Calculate the length of the diagonal

public double diagonal () {

int a;

double diagonal;

a=((base*base)+(height*height));

diagonal = Math.sqrt(a);

return diagonal;

}

// Turn this rectangle 90 degrees ( changing base by height ).

public void turn () {

int aux;

aux=base;

base=height;

height=aux;

}

// Ensure that this rectangle is oriented horizontally ( the base is greater

// or equal than the height ).

public void putHorizontal () {

if (base<height){

int aux;

aux=base;

base=height;

height=aux;

}

}

// Ensure that this rectangle is oriented vertically ( the height is greater

// or equal than the base ).

public void putVertical () {

if (height<base){

int aux;

aux=base;

base=height;

height=aux;

}

}

// Two rectangles are equal if the base and the height are the same .

// It does not take into account if the rectangle is rotated .

@Override

public boolean equals ( Object obj ) {

Rectangle r=(Rectangle)obj;

return r.getBase().equals(this.getBase());

}

// It complies with the hashCode contract and is consistent with the equals .

public int hashCode () {

return 0;

}

}

But i cannot understand the behaviour of the method equals() so i dont know how to continue. Can anyone help me? thank you.

Tagged: