클래스 Person은 이름을 저장하는 필드 구성
클래스 Person은 상위 클래스 Object의 메소드 equals()를 오버라이딩하여
이름이 같으면 true를 반환하는 메소드 구현
다음과 같은 소스로 클래스 Person을 점검
Person p1 = new Person("홍길동");
System.out.println(p1.equals(new Person("홍길동")));
System.out.println(p1.equals(new Person("최명태")));
/*
클래스 Person은 이름을 저장하는 필드 구성
클래스 Person은 상위 클래스 Object의 메소드 equals()를 오버라이딩하여
이름이 같으면 true를 반환하는 메소드 구현
다음과 같은 소스로 클래스 Person을 점검
*/
class Person{
private String name;
public Person(String name) {
this.name = name;
}
public boolean equals(Object obj) {
if(obj instanceof Person) {
if(this.name == ((Person)obj).name)
return true;
}
return false;
}
}
public class EqualsPerson {
public static void main(String[] args) {
Person p1 = new Person("홍길동");
System.out.println(p1.equals(new Person("홍길동")));
System.out.println(p1.equals(new Person("최명태")));
}
}
그냥... equals 했던거 보고 따라했어요 잘모르겠어요..
public static void main(String[] args) {
String s1 = new String("java");
String s2 = new String("java");
String s3 = s2;
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));
System.out.println(s2 == s3);
System.out.println(s2.equals(s3));
if(s1 == s2)
System.out.println("s1, s2 참조 대상 같다.");
else
System.out.println("s1, s2 참조 대상 다르다. ");
if(s2 == s3)
System.out.println("s2, s3 참조 대상 같다.");
else
System.out.println("s2, s3 참조 대상 다르다. ");
if(s1.equals(s2))
System.out.println("s1, s2 내용 동일하다.");
else
System.out.println("s1, s2 내용 다르다.");
if(s2.equals(s3))
System.out.println("s2, s3 내용 동일하다.");
else
System.out.println("s2, s3 내용 다르다.");
==은 주소값을 비교하는 것.
equals()는 안에 내용을 비교하는 것.
그래서 s1 == s2는 내용은 같지만 주소값은 각각 다르기 때문에 false가 나오고 s1.equals(s2)는 true가 나옴.
INum[] ar1 = new INum[3];
INum[] ar2 = new INum[3];
ar1[0] = new INum(1); ar2[0] = new INum(1);
ar1[1] = new INum(2); ar2[1] = new INum(2);
ar1[2] = new INum(3); ar2[2] = new INum(3);
System.out.println(Arrays.equals(ar1, ar2));
import java.util.Arrays;
class INum{
int num;
public INum(int num) {
this.num = num;
}
public boolean equals(Object obj) {
if(obj instanceof INum) {
if(this.num == ((INum)obj).num)
return true;
}
return false;
}
}
public class EqualsTest {
public static void main(String[] args) {
INum[] ar1 = new INum[3];
INum[] ar2 = new INum[3];
ar1[0] = new INum(1); ar2[0] = new INum(1);
ar1[1] = new INum(2); ar2[1] = new INum(2);
ar1[2] = new INum(3); ar2[2] = new INum(3);
System.out.println(Arrays.equals(ar1, ar2));
}
}
출처 : https://seeminglyjs.tistory.com/184
public static void main(String[] args) {
DBox<String, Integer> box = new DBox<String, Integer>();
box.set("Apple", 25);
System.out.println(box);
}
class DBox<R,L>{
private R right;
private L left;
public void set(R right, L left) {
this.right = right;
this.left = left;
}
@Override
public String toString() {
return right + "&" + left;
}
}
public class DBoxTest {
public static void main(String[] args) {
DBox<String, Integer> box = new DBox<String, Integer>();
box.set("Apple", 25);
System.out.println(box);
}
}