반응형
- equals 메소드의 경우 문자열을 비교하기 위해 사용가능하며
또한 문자열이 아닌 객체에 대해서도 사용이 가능하다.
public class Object {
public static void main(String[] args) { // TODO Auto-generated method stub //equals method Circle obj1 = new Circle(5); Circle obj2 = new Circle(5); // 똑같은 값을 갖는 두 개의 Circle 객체를 생성합니다. if(obj1.equals(obj2)) System.out.println("같음"); else System.out.println("다름"); //두 객체를 equals 메소드를 비교하여 결과를 출력합니다. } }// end of class class Circle { int radius; //반지름 Circle (int radius) { this.radius = radius; } }// end of class
실행결과 :
다름
- 결과가 다른 이유는 두객체를 비교할때 객체의 필드 값이 아니라 참조값을 가지고 비교하기에 메소드를 상속받아 사용하면 똑같은 값을 갖는 객체도 다르다는 결과가 나온다.
- 의미있는 결과를 리턴하기 원한다면 Object 클래스로 부터 상속받은 equals 메소드를 오버라이드 해야한다.
- 수정된 Circle 클래스
class Circle { int radius; // 반지름 Circle(int radius) { this.radius = radius; } public boolean equals(Object obj) { if (!(obj instanceof Circle)) return false; Circle circle = (Circle) obj; if (radius == circle.radius) return true; else return false; } }// end of class
이런식으로 오버라이딩 해서 사용해야된다.
하지만 Object 클래스의 equals메소드를 오버라이드 할 때는 hashCode라는 메소드를 같이 오버라이드 해야하기에 이예제는 완벽하지않다.
toString 메소드
: 객체가 가지고 있는 값을 문자열로 만들어서 리턴하는 메소드
public class toString { public static void main(String[] args) { GoodsStock obj = new GoodsStock("54651", 100); String str = obj.toString(); System.out.println(str); } }// end of class class GoodsStock { String goodsCode; // 상품코드 int stockNum; // 재고수량 public GoodsStock(String goodsCode, int stockNum) { this.goodsCode = goodsCode; this.stockNum = stockNum; } }//end of class
실행결과 :
GoodsStock@1ff0dde
- 원하는 실행결과 값으로 받고 싶을시
- Object 클래스로부터 상속받은 toString 메소드를 GoodsStock 클래스에서 오버라이드 해야된다.
- 수정된 GoodsStock
class GoodsStock { String goodsCode; // 상품코드 int stockNum; // 재고수량 public GoodsStock(String goodsCode, int stockNum) { this.goodsCode = goodsCode; this.stockNum = stockNum; } public String toString() { String str = "상품코드 : " +goodsCode+ "재고수량 : " +stockNum; return str; } }// end of class
실행결과 :
상품코드 : 54651 재고수량 : 100
-한빛미디어 뇌를 자극하는 Java 프로그래밍 참조
반응형
'JAVA' 카테고리의 다른 글
입출력(I/O)[미완] (0) | 2013.07.22 |
---|---|
2013년 7월 5일 강의내용(Oracle JDBC연동) (0) | 2013.07.22 |
Collection (0) | 2013.07.22 |
2013년 7월 3일 강의내용(생성자, Wrapper Class, Vector & ArrayList). (0) | 2013.07.22 |
SimpleDateFormat 클래스를 이용하여 날짜와 시간 포맷하기 (0) | 2013.07.22 |