Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- PostgreSQL
- partitioning
- Lag
- mariadb
- EventSource
- 개발자
- 파티셔닝
- node.js
- ServerSentEvent
- localStorage
- 실시간알림
- Partition
- 성장기
- SSE
- Node.js기본
- node.js란
- frontend
- 열공하자
Archives
- Today
- Total
써치킴의 우당탕탕 개발 블로그
[Java][Ch3] Object Class 본문
Object Class
자바 API의 모든 클래스와 사용자가 정의한 모든 클래스의 최상위 클래스
-
자바의 모든 클래스들은 Object 클래스를 상속받아야 함
-
Object 클래스의 모든 메서드를 사용 가능
-
보통은 override해서 사용
equals()
-
Object의 클래스 메서드
-
Object의 클래스의 equals()는 객체의 주소값을 비교한다.
-
주로 자식클래스에서 오버라이드해서 사용
-
ex) String 클래스의 equals()는 "문자열" 비교
-
※ public boolean equals(Object obj){.......}
-
obj가 Object형이므로 반드시 같은 자료형인지 비교 필요 -> instanceof 연산자 사용
-
hashConde()
객체의 식별 정수값
-
주소값을 이용해서 정수형 숫자를 만들어서 리턴 -> 객체마다 고유한 값을 가짐
-
※ 주의
- 논리적 동급 객체 비교시 오버라이드 해야한다
toString()
객체의 문자정보를 리턴(객체를 문자열로 표현한 값)
-
Object 클래스의 toString() => path.클래스명@객체주소값(16진수 해쉬코드)
-
String 클래스의 toString() => 객체가 저장하고 있는 문자열 리턴
AA.java
public class AA /*extends Object가 생략되어있음*/{
private String name;
private int kor;
private int eng;
public AA() {
this(null, 0, 0);
}
public AA(String name, int kor, int eng) {
this.name = name;
this.kor = kor;
this.eng = eng;
}
@Override
public String toString() {
return "AA [name=" + name + ", kor=" + kor + ", eng=" + eng + "]";
}
}
MainEx.java
public class MainEx {
public static void main(String[] args) {
AA aa1 = new AA("SEA", 10, 20);
Object aa2 = new AA("sky", 60, 70);
// aa1의 주소값을 aa3번에 대입하라
// 같은 객체를 참조한다 -> 주소값과 해시코드값이 같다.
AA aa3 = aa1;
// AA클래스에서 toString()함수를 오버라이드하지 않을 경우 Object를 상속받은 AA 클래스의 toString()함수(주소값)가 호출된다.
// AA클래스에서 toString()함수를 오버라이드할 경우 입력한 return값으로 출력된다.
System.out.println("aa1 : " + aa1);
System.out.println("aa2 : " + aa2);
System.out.println("aa3 : " + aa3);
System.out.println();
//aa1과 aa2의 주소값이 같은지를 비교
System.out.println("aa2.equals(aa1) : " + aa2.equals(aa1)); // 각 객체의 주소가 다르므로 false
System.out.println("aa1.getClass() : " + aa1.getClass());
System.out.println("aa2.getClass() : " + aa2.getClass());
System.out.println("aa1.hashCode() : " + aa1.hashCode());
System.out.println("aa2.hashCode() : " + aa2.hashCode());
System.out.println("aa3.hashCode() : " + aa3.hashCode());
System.out.println(aa1.toString());
System.out.println(aa2.toString());
System.out.println(aa3.toString());
}
}
'더 자세하게 Java' 카테고리의 다른 글
[Java][Ch3] Math 클래스 (0) | 2022.05.13 |
---|---|
[Java][Ch3] 래핑 클래스 (0) | 2022.05.13 |
[Java][Ch2] 내부클래스 (0) | 2022.05.13 |
[Java][Ch2] 인터페이스 (0) | 2022.05.13 |
[Java][Ch2] 추상화(abstract) (0) | 2022.05.13 |
Comments