본문 바로가기

JAVA 공책/수업 메모

[완전 중요] Object 클래스에 관하여

Object클래스

->자바의 최상위 클래스

->자바의 모든 클래스는 오브젝트 클래스를 상속합니다.(모든 클래스는 오브젝트 클래스의 하위클래스입니다)

->오브젝트 타입의 변수에는 어떤 종류의 데이터이던지 대입할 수 있습니다

->오브젝트 타입에 대입된 데이터는 출력을 할 때는 제외하고 항상 원래의 자료형으로 형변환을 해서 사용해야 합니다.

->오브젝트 클래스에는 toString 메소드가 만들어져 있는데, 이 메소드는 기본적으로 클래스 이름@해시코드 를 문자열로 리턴하도록 되어 있습니다. (즉 다른 모든 클래스에도(상속되어 있으므로) toString 메소드가 있습니다.

->출력하는 메소드(print, println printf)에 인스턴스 이름을 대입하면 항상 toString의 결과를 출력합니다.



package swing;
public class A_ObjectPracticeMain {
     public static void main(String[] args) {
         Object obj = new Object();
         // obj인스턴스의 toString 결과 출력
         // 직접 호출하나 인스턴스 이름만 설정하나 결과는 같음.
         System.out.println(obj.toString());
         System.out.println(obj);
         Integer i = 100;
         // toString의 결과가 저장하고 있는 데이터인 100입니다.
         System.out.println(i.toString());
         System.out.println(i);
         // 상위 클래스 타입의 참조형 변수에
         // 하위 클래스 타입의 인스턴스 참조를 대입할 수 있다.
         Object str = "Hello world";
         System.out.print(str);
         // 출력만 할 때는 형변환없이 사용해도 됩니다.
         // 왜냐하면 toString()은 Object가 가지고 있으므로 호출할 수 있기 때문입니다.
         //오브젝트에 랭스가 없어서 오류가 난다. 따라서 형변환을 꼭 해주고 사용해야 합니다.
         // for(int i=0; i<str.length(); i++) {}
         
         String imsi = (String) str;
         for (int j = 0; j < imsi.length(); j++) {
         char ch = imsi.charAt(j);
         System.out.println(ch);
         }
         //Object 타입의 변수는 출력 할 때는 제외하고 위 처럼 원래 자료형으로 강제 형 변환해서 사용해야 합니다.
     }
}

'JAVA 공책 > 수업 메모' 카테고리의 다른 글

java.io.File  (0) 2018.07.19
Swing  (0) 2018.07.19
컨테이너와 컴포넌트  (0) 2018.07.18
Swing  (0) 2018.07.18
Java, swing, Android의 view의 이벤트 처리형식  (0) 2018.07.18