오늘은 쉬운 내용이에요
우리가 컴퓨터의 파일들을 관리할 때
폴더구조를 사용하잖아요?
Java에서도 클래스들을 관리할 때
패키지를 사용해요
--
패키지는
그리고 클래스는 패키지 안에 속해있기 때문에
클래스의 Full name은 패키지명을 포함하여 경로를 명시해줘요.
클래스를 사용할 때 원래 패키지명까지 다 적어줘야 하죠
근데 그동안 클래스명만 적었어요.
어떻게 그래왔던 걸까요?
소스코드의 첫번째 줄에
package com.java.book;
이렇게 패키지의 위치를 선언하면,
같은 패키지에 속한 클래스들의 Full name을 적을 필요가 없어요.
엇?! 그럼 다른 패키지에 속한 클래스를 사용하려면
클래스명을 다 적어줘야 할까요?
String 클래스를 사용하려면
java.lang.String
을 다 적어줘야 하나요?
아니요. 지금까지 안 그랬어요
어떻게 그럴 수 있었을까요?
Java는 많이 쓰이는 java.lang 패키지를
기본으로 import 해주기 때문이에요
그럼 java.lang 패키지에 속하지 않은 클래스들은
클래스명을 다 적어줘야 할까요?
네. 다른 클래스들이 속한 패키지는
자동으로 import해주지 않기 때문에
원래는 다 적어줘야 해요
하지만 수동으로 import문을 적어준다면
Full name을 적을 필요가 없어요
이제 import에 대해 알아볼까요
import를 번역하면 이런 뜻이에요
import : 수입하다 (= 가져오는 느낌)
그리고 import 키워드는 이렇게 사용합니다.
import java.util.*
* 은 java.util 패키지 안의 모든 클래스를 의미해요.
하지만 모든 클래스를 의미한다고 성능이 느려지진 않아요.
그저 컴파일 시에 낯선 클래스가 보일 때 import 되었는지 확인하는 것이기에
클래스들을 가져오는 게 아니라 클래스의 위치만 확인하는 용도에요.
이렇게 패키지를 import 해놓으면 클래스를 사용할 때
클래스명만 작성하면 돼요. 간단하죠.
그리고 static import도 있어요.
이건 클래스명까지 생략하게 만들어요.
그래서 메소드명을 바로 적을 수 있게 돼요.
마지막 주의사항입니다.
이름이 같은 클래스가 속한 두 패키지를 import할 때에는
Full name을 적어줘야 합니다.
그렇지 않으면 이름이 같은 클래스인데,
어떤 패키지의 클래스를 사용하는 지 알 수 없을테니까요.
앞으로 package를 import하여 클래스 이름을 간단하게 적자구요!!
감사합니다.
오늘도 고생하셨어요.