2014년 11월 26일 수요일

[JAVA Equals]Object 비교,객체내용비교 (Object equals,자바 OBJECT)[자바개발자교육/자바교육/자바강좌/자바,Spring교육잘하는곳/자바,spring교육추천/자바실무교육/JAVA/JAVA교육/JAVA스프링학원/JAVA실무교육]

[JAVA Equals]Object 비교,객체내용비교 (Object equals,자바 OBJECT)

- boolean equals(Object obj)
두 객체가 같은지 비교
실질적으로 두 객체의 내용이 같은지를 검사 하려면 equals() 메소드를 오버라이드 해서 객체가 포함하고 있는 내용을 비교
Java.lang.equals() 메소드를 살펴보면
 public boolean equals(Object obj) {
  return (this == obj);//결국 equals()를 overriding하지     //않는 한 equals()와 ==의 차이는 없다.
 }
Java.lang.String 경우는 equals() 메소드를 재정의 하여 다음과 같이 정의하고 있다. public boolean equals(Object?anObject) 
 Compares this string to the specified object. The result is true if and only if the argument is not null and is a String object that represents the same sequence of characters as this object.
실질적으로 두 객체의 내용이 같은지를 검사 하려면 equals() 메소드를 오버라이드 해서 객체가 포함하고 있는 내용을 비교
- Object 클래스의 equals 함수는 객체의 레퍼런스 값을 비교
return this == obj

package a.b.onjweb;
class NOTEQUAL // `extends Object'가 자동 삽입됨
{
    int v;
    NOTEQUAL(int value) {
        v = value;
    }
}
class EQUAL // `extends Object'가 자동 삽입됨
{
    int v;
    EQUAL(int value) {
        v = value;
    }
    public boolean equals(Object obj) {
        return (obj != null) && (v == ((EQUAL) obj).v);
    }
}
public class EqualTest // `extends Object'가 자동 삽입됨
{
    public static void main( String[] args )
    {
     NOTEQUAL ne1 = new NOTEQUAL(100);
     NOTEQUAL ne2 = new NOTEQUAL(100);
     
        System.out.println( ne1 == ne2 );      // 참조값 비교
        System.out.println( ne1.equals(ne2) ); // 참조값 비교
        EQUAL e1 = new EQUAL(100);
        EQUAL e2 = new EQUAL(100);
        
        System.out.println( e1 == e2 );        // 참조값 비교
        System.out.println( e1.equals(e2) );   // 내용 비교
        String s1 = "abc", s2 = "ab", s3 = "c", s4 = s2 + s3;
        System.out.println( s1 == s4 );        // 참조값 비교
        System.out.println( s1.equals(s4) );   // 내용 비교
    }
}
 
[결과]
false
false
false
true
false
true



 [100%환급,개발자전문]빅데이터/SQL/자바/스프링/안드로이드/닷…오라클자바…12-272624
 [채용확정무료교육]오라클자바개발잘하는신입뽑기2개월과정,교육…오라클자바…12-111895
53 [평일100%환급7건]Spring,자바&JSP,안드로이드,웹퍼블리싱,C#닷… 오라클자바…03-151714
52 [주말]C#,ASP.NET마스터 오라클자바…01-311823
51 [기업100%환급,평일주간]SQL기초에서스키마오브젝트,PLSQL,힌트… 오라클자바…01-312674
50 [평일주간야간,주말]C기본&자료구조,알고리즘 오라클자바…01-311428
49 [평일주간,평일야간,주말]Spring,MyBatis,Hibernate개발자과정-… 오라클자바…01-191751
48 [평일야간,주말]안드로이드개발자과정(Android기초실무) 오라클자바…01-111638
47 [평일야간,주말주간야간]JAVA,Network&JSP&Spring,MyBatis,Hiber… 오라클자바…01-032154
46 [100%환급,개발자전문]빅데이터/SQL/자바/스프링/안드로이드/닷… 오라클자바…12-272624
45 [평일주간]NoSQL,MongoDB,빅데이터기초과정 오라클자바…12-191858
44 [평일주간야간, 주말]웹퍼블리싱 마스터(HTML5,CSS3,jQUERY,AJAX… 오라클자바…12-141828
43 [채용확정무료교육]오라클자바개발잘하는신입뽑기2개월과정,교육… 오라클자바…12-111895
42 [평일주간]빅데이터하둡기초과정(BigData Hadoop) 오라클자바…12-091489
41 [평일야간]닷넷(C#,Network,ADO.NET,ASP.NET)마스터 오라클자바…12-011718
40 [기업100%환급]오라클&자바웹스프링신입과정3주(SQL,JAVA,JSP,Se… 오라클자바…12-011897
39 [평일야간,주말]SQL기초에서실무까지(SQL기초,PLSQL,힌트,튜닝) 오라클자바…12-011363

댓글 없음:

댓글 쓰기