equals() 메소드

춤추는개발자·2022년 9월 29일
0

Java 정리

목록 보기
41/59

equals() 함수 ?

모든 클래스의 조상인 object 클래스에는 equlas() 함수는 두 객체가 같은지 비교합니다. 쉽게 말해서 두 객체의 주소가 같은지 비교하여 true 또는 false를 반환 합니다. 흔히 우리가 사용하는 equals()는 String 클래스에서 오버라이딩을 해서 문자열간의 비교가 가능해진 것 입니다.

object 클래스의 equlas() 함수의 코드

public boolean equals(Object obj) {
        return (this == obj);
    }

object 클래스의 equlas() 함수의 코드는 위의 코드처럼 되어있다.
객체의 주소값을 비교하는 연산자인 "=="와 같은 기능을 한다.

equlas() 메소드 예제 코드

class circle {
    int radius;
    public Circle(int radius){
          this.radius = radius;
    }
}

public class CirclTest {
   public static void main(String[] args){
        Circle obj1 = new Circle(100);
        Circle obj2 = new Circle(100);
        if (obj1 == obj2) {
        System.out.println("2개의 원은 같습니다.");
        { else{
        System.out.println("2개의 원은 같지 않습니다.");
     }
 }

위 코드의 출력은 "2개의 원은 같지 않습니다."로 출력 됩니다. 그 이유는 위에서 말했듯이 "==" 연산자는 같은 객체를 비교할때 객체의 주소값이 같은지 비교해서 true 또는 false 를 돌려주기 때문 입니다.

equlas() 메소드 오버라이딩 예제 코드

class circle {
    int radius;
    public Circle(int radius){
         this.radius = radius;
         }
    public boolean Circle(Circle c1){
          if (radius == c1.radius){
          return true;
          } 
          else {
          return false;
          }
     }
}

public class CirclTest {
   public static void main(String[] args){
       Circle obj1 = new Circle(10);
		Circle obj2 = new Circle(10);
		
		if (obj1.equals(obj2)) {
			System.out.println("2개의 원은 같습니다.");
		} else {
			System.out.println("2개의 원은 같지 않니다.");
		}
	
 }

위의 코드는 object 클래스를 오버라이딩하여 객체를 비교하지 않고 객체 값을 비교하여 true 또는 false 를 돌려주도록 하였습니다. String에서 사용하는 equals() 함수도 위의 코드와 같이 String 클래스에서 object 클래스의 상속을 받아 equlas() 함수를 오버라이딩 하여 문자열을 비교하여 true 또는 false 돌려줄 수 있는 것 입니다.

0개의 댓글