📚 Study/Java

JAVA :: Test126~127_자바에서 기본적으로 제공하는 주요 클래스들

bono-hye 2023. 9. 16. 16:56

○ 개요

일반적으로 클래스는 하나만 존재하는 것이 아니라 같은 종류의 클래스를 여러 개 묶어서 사용하게 되는데

이러한 클래스나 인터페이스의 묶음을 패키지(package) 라고 한다.

Sun(Oracle)사에서는 자바 프로그램을 효율적으로 작성할 수 있도록 자바 표준 패키지를 제공하며,

자바 표준 패키지에는 그래픽, 네트워크, 데이터베이스 등의 다양하고 유용한 클래스들이 포함되어 있다.

 

 

○ import 구문

자바 표준 패키지나 사용자에 의해 외부에서 만들어진 패키지를 사용하기 위해서는

컴파일을 수행하기에 앞서 프로그램을 포함시키는 과정이 필요한데,

이 때 『import』문을 이용하여 패키지 또는 클래스를 프로그램에 포함시키게 된다.

하지만, 『java.lang.*』 패키지는 자바 프로그램에 기본적으로 import 되어 있기 때문에 이 패키지의 클래스들은 import 하지 않고 바로 사용하는 것이 가능하다.

import 문은 반드시 클래스 설계 구문 전에 선언되어 있어야 하며 형식은 다음과 같은 두 가지가 있다.

 

import [static] 패키지. 클래스;

import [static] 패키지.*;

 

※ JDK 1.5 부터는 import 다음에 『static』 키워드를 사용할 수 있게 하였고 정적으로 패키지를 import 할 수 있는 기능을 제공하게 됨.

만약 패키지를 정적으로 import 한 경우라면 모든 접근 가능한 메소드와 멤버 변수들은 접두사(ex → ob, br, sc 처럼...)를 붙이지 않고 사용하는 것이 가능하다.

 

 

○ Object 클래스

『java.lang.Object』 클래스는 자바 클래스의 최상위 클래스로

자바 표준 패키지의 클래스나 사용자에 의해 작성된 모~~~~~~~~~~ 든 클래스는 기본적으로 이 클래스로부터 상속받는다.

따라서, 자바의 모든 클래스는 『java.lang.Object』 클래스의 메소드를 가지고 있으며, 바로 사용하는 것이 가능하다.

 

Test126

// import java.lang.*;

public class Test126	// extends Object
{
		/*
		Object 클래스로부터 상속받은 멤버들
		...
		...

		...toString()
		{
			...;
		}
		*/

	public static void main(String[] args)
	{
		Test126 ob = new Test126();

		// 객체.xxx();
		//-- 해당 객체를 생성시키는데 사용된 클래스의 메소드 xxx() 호출

		// Circle ob = new Circle();
		// ob.input();
		//-- ob 객체를 생성시키는데 사용된 클래스 → Circle
		//	 Circle 클래스에 정의되어 있는 input() 메소드 호출

		// 객체.yyy();
		//-- 해당 객체를 생성시키는데 사용된 대상 클래스에
		//	 yyy() 메소드가 존재하지 않을 때...
		//--==>> 에러 발생(컴파일 에러)

		//System.out.println(ob.action());
		//--==>> 에러 발생(컴파일 에러)
		//--     cannot find symbol
		//-- ob 객체를 생성시키는데 사용된 Test126 클래스에
		//	 action 메소드가 존재하지 않기 때문에 에러 발생하는 상황

		System.out.println(ob.toString());		// toString() → Object로 부터 상속받은 메소드, 문자열 반환
		//--==>> Test126@15db9742  (메모리 주소값 아님!!!!)
		//-- 메모리 주소가 아니라
		//	 자바가 객체를 구분하기 위해 임의로 부여하는 식별번호
		//-- Test126 클래스에 toString() 메소드가 존재하지 않음에도 불구하고
		//	 에러가 발생하지 않는 상황
		//	 → Object 로 부터 상속받음~!!!

		System.out.println(ob);			// Object 객체를 불러옴
		//--==>> Test126@15db9742
	}
}

Test127 (Test126과 비교해서 보기!)

public class Test127	// extends Object
{
	/*
	Object 클래스로부터 상속받은 멤버들~!!!

	...

	public String to String()
	{
		...;
	}

	..

	*/

	@Override
	public String toString()			// Object 기본 메소드인 toString() 오버라이
	{
		return "재정의한 toString()...";
	}

	public static void main(String[] args)
	{
		Test127 ob = new Test127();

		System.out.println(ob.toString());
		//--==>> 재정의한 toString()...

		System.out.println(ob);
		//--==>> 재정의한 toString()...


	}

}