* Object 클래스
1. java의 모든 클래스의 조상 클래스이다.
==> java의 가장 최상위 조상 클래스
2. 사용자가 정의한 클래스에 자동으로 상속됨.
==> 단, extends 키워드를 사용하지 않은 클래스만 상속이 됨.
* [Object 클래스의 주요 메서드]
- toString() :
1) 객체 자신의 정보를 문자열로 반환.
2) 인스턴스에 대한 정보를 문자열로 제공할 목적으로 사용됨.toString() 메서드 재정의
3) Object 클래스에서 상속 받은 메서드를 유용한 정보가 반환이 되도록 재정의.
4) 해당 클래스의 멤버 변수가 정보를 가지고 있는데 가지고 있는 데이터가 올바른 값이 담겼는지 혹은 틀리게 담겨져 있는지 확인하고 싶은 경우에 toString() 메서드를 재정의하여 값을 확인할 수 있음.
5) 사용자가 임의로 output() 메서드를 사용하는 것보다 toString()을 사용하는 게 안전하고 좋음.
- getClass() : - 객체 자신의 클래스 정보를 담고 있는 Class 인스턴스를 반환함.
- hashCode() : - 객체 자신의 해쉬코드를 반환함.
- equals() : - 객체 자신과 또 다른 객체가 같은 객체인지 알려주는 메서드(boolean)
- clone() : - 객체 자신의 복사본을 반환함.
예제1) Object 주요 메서드
public class Ex01 { // extends Object 생략
public static void main(String[] args) {
Ex01 ex01 = new Ex01();
Ex01 ex02 = new Ex01();
System.out.println("toString() >>> " + ex01.toString());
System.out.println("getClass() >>> " + ex01.getClass());
System.out.println("hashCode() >>> " + ex01.hashCode());
if(ex01 == ex02) {
System.out.println("같다.");
} else {
System.out.println("다르다");
}
}
}
예제2) toString() 메서드 재정의
class Student { // extends Object 가 생략
String name;
int hakbun;
public Student() { } // 기본 생성자.
public Student(String name, int hakbun) {
this.name = name;
this.hakbun = hakbun;
}
// 학생 정보 확인 메서드
// void getStudentInfo() {
// System.out.println("학생 이름 : " + name);
// System.out.println("학생 학번 : " + hakbun);
// }
@Override
public String toString() {
return "학생 이름 : "+name+", 학생 학번 : "+hakbun;
}
}
public class Ex02 {
public static void main(String[] args) {
Student student = new Student("홍길동", 2021031601);
//student.getStudentInfo(); // 학생 정보 확인 메서드 호출
// 생성자를 이용해 멤버변수에 넣어놓은 데이터가 올바르게 들어가 있는지 확인하기 위한 메서드
System.out.println(student.toString());
}
}
예제3) Object 자료형으로 변수 선언하기
public class Ex03 {
public static void main(String[] args) {
// String 배열 객체 생성
String[] str = new String[4];
str[0] = "홍길동";
str[1] = "서울시 마포구";
str[2] = "hong";
//str[3] = 150; // error 발생 ==> 자료형 불일치
str[3] = "1234";
for(String k : str) {
System.out.println("str 배열 요소 >>> " + k);
}
System.out.println();
// Object 배열 객체 생성
Object[] obj = new Object[4];
obj[0] = "이순신"; // 문자열(String) 자료형
obj[1] = 130; // 정수(int) 자료형
obj[2] = true; // boolean 자료형
obj[3] = 3.14; // 실수(double) 자료형
for(Object k : obj) {
System.out.println("obj 배열 요소 >>> " + k);
}
System.out.println();
}
}
'Back > JAVA' 카테고리의 다른 글
싱글턴(singleton) 방식으로 객체 생성하기★★★★★ (0) | 2021.03.16 |
---|---|
중첩 클래스(inner class)와 다양한 형태의 클래스 선언 방법 (0) | 2021.03.16 |
String Class의 특징 및 주요 메서드(StringBuffer, StringTokenizer) (0) | 2021.03.16 |
Util 패키지 - Random, Math, Calendar, Arrays (0) | 2021.03.15 |
[심화예제] 2차원 배열 객체에서의 예외처리 (0) | 2021.03.15 |