아래는 Object클래스의 메소드들입니다. 그 중에서 가장 많이 사용하는 메소들을 골라서 설명 드리도록 하겠습니다.
equals();
equals() 메소드는 두개의 객체가 같은지를 비교하며 그 결과값을 boolean의 데이터 타입으로 반환합니다. 아래는 equals의 특징을 서술하였습니다.
1. equals는 그 객체의 내용을 비교할 수 있는 메소드 입니다. 연산자== 의 형태는 객체가 가지는 주소가 같은지 확인하는 것이지만 equals는 그 내용이 같은지 확인하는 것입니다.
2. equals의 반대는 앞쪽에 ! 을 표시하시면 됩니다. 그렇다면 같이않다는 것을 나타내는 것이겠지요.
예제를 하나씩 살펴보면서 equals에 대해서 파악해보도록 하겠습니다.
public class T2 {
public static void main(String[] args) {
int a = 1; int b = 1; String c="1"; String d="1";
System.out.println(a==b); System.out.println(c==d); //---------------------------- String e= new String("1"); String f= new String("1");
System.out.println(e==f); } }
|
<결과물> |
위의 예제를 살펴보도록 하겠습니다.
int a,b와 String c,d는 System.out의 출력결과 true라는 값을 반환하였습니다.
그러나 Stirng e와 f 는 false라는 값을 반환하였습니다. "1"이라는 값으로 true가 반환되어야 하지만, String 초기화 및 선언시 새로운 주소 객체에 "1"을 넣어라는 new를 사용하였습니다.
int a=1; int b=1; 은 서로 같은 주소값과 같은 결과값
String에서 new로 지정한 것은 서로 다른 주소값에 결과를 넣음
==는 메모리의 위치를 비교하며 equals는 값을 비교합니다.
아래의 예제를 보면서 살펴보도록 하겠습니다.
public class T2 {
public static void main(String[] args) {
String e= new String("1"); String f= new String("1");
if(e==f) System.out.println("e와 f는 같습니다."); else System.out.println("e와 f는 다릅니다."); } } |
<결과물> |
public class T2 {
public static void main(String[] args) {
String e= new String("1"); String f= new String("1");
if(e.equals(f)) System.out.println("e와 f는 같습니다."); else System.out.println("e와 f는 다릅니다."); } } |
<결과물> |
그래서 우리는 주소로 된 데이터를 비교할때 연산자 ==가 아닌 equals라는 메소드가 필요합니다.
자료가 마음에 드셨다면 자주 찾아주세요^^ 글 올리는데 힘이됩니다.
'JAVA-클래스의 중요메소드 > Object클래스' 카테고리의 다른 글
JAVA-중요02-toString(예제) (0) | 2018.06.21 |
---|---|
JAVA-중요02-toString (0) | 2018.06.21 |
JAVA-중요01-equals(예제) (0) | 2018.06.21 |