Java/모두의 자바

Chapter 06-36 패키지

계란💕 2022. 2. 7. 16:04

06-36.1 패키지란?

 

  - 패키지란 클래스를 관리하는데 사용한다.  

  - 클래스는 자바 파일을 작성한 뒤 컴파일 하면 생성된다. 

  - 생성된 클래스도 파일이다.

  - 컴퓨터의 파일을 폴더별로 나누어 정리하는 것처럼 

  - 자바도 관련한 클래스를 폴더별로 관리한다. 

  - 이 때 "package"라는 키워드를 사용한다. 

  - 패키지명은 다른 프로젝트나 다른 회사 다른 프로그래밍과 중복되지 않도록

  - 도메인명을 거꾸로 적은 후 프로젝트명을 붙여서 사용한다. 

 

 

06-36.2 패키지 만들기

  - 패키지명은 "폴더명.폴더명"으로 만들어진다.

  - 폴더명은 숫자로 시작할 수 없다. 

 

  (1) 이클립스의 src폴더에서 마우스 오른쪽 New > Package 클릭

  (2) name에 도메인명( com.eightcruz) 과 프로젝트명 (.javastudy)도 적어준다.

  (3) 만들어진 패키지에서 오른쪽 마우스 New > Class 선택 

  (4) Hello라는 클래스를 만든다.

  (5) 파일 탐색기 C드라이브 > javaStudy > src > com > eightcruz > javastudy > Hello.java파일이 있다. 

 

 

06-36.3 생성한 패키지를 사용해보자.

  (1) javaStudy패키지에 HelloEexam 만들기

  (2) HelloExam파일 안에서 Hello클래스를 사용해보자

<hide/>

package javaStudy;

public class HelloExam {
	public static void main(String[] args) {
		
		Hello hello = new Hello();	
	}
}

  (3) 출력 결과: Hello cannot be resolved to a type

  (4) Hello 클래스를 정의하지 않았다고 에러가 발생한다. 

  (5) 따라서 다른 패키지에 들어있는 클래스를 사용하기 위해 import를 사용한다. 

  Def) import : 다른 패키지에 있는 클래스를 사용하기 위한 키워드 ( import문 추가 : Ctrl + Shift + O )  

  - java.lang은 가장 기본이 되는 클래스들을 포함한다. 

<hide/>

package javaStudy;
import com.eightcruz.javastudy.Hello;

public class HelloExam {
	public static void main(String[] args) {
		
		Hello hello = new Hello();	
	}
}

  (6) javastudy패키지 안에 있는 Hello 클래스를 쓰겠다고 imfort로 명시해줘야 Hello클래스를 사용할 수 있다. 

  (7) 이 때 클래스명 앞에  *을 사용해서 해당 패키지 안에 있는 모든 클래스를 사용하겠다고

  (8) 컴파일러와 jvm에 알려줄 수 있다.

<hide/>

package javaStudy;
import com.eightcruz.javastudy.*;

public class HelloExam {
	public static void main(String[] args) {
		
		Hello hello = new Hello();	
	}
}

  (9) import를 사용하지 않으면 클래스를 쓸 때마다 클래스 앞에 일일이 패키지명을 붙여여 한다. 

<hide/>

public static void main(String[] args) {
		
	com.eightcruz.javastudy.Hello hello = new com.eightcruz.javastudy.Hello();		
}

 

 

'Java > 모두의 자바' 카테고리의 다른 글

Chapter 07-38 접근 제한자  (0) 2022.02.08
Chapter 07-37 상속이란?  (0) 2022.02.08
Chapter 06-35 생성자 오버로딩과 this  (0) 2022.02.07
Chapter 06-34 메서드 오버로딩  (0) 2022.02.07
Chapter 06-33 this  (0) 2022.02.07