Java공부(코딩)

코딩초보의 자바(Java)공부 9일차 { 패키지 }

동곤일상 2024. 12. 14. 16:28
반응형
오늘 날씨가 많이춥네요
다들 따듯하게 입고 다닙시다!
오늘은 패키지에 대해서
간략하게 알아볼게요 !
어렵지않은 내용이지만
필수로 아셔야 합니다!

0) 왜 패키지에 대해 알아야하는가?

  여러분이 큰 프로젝트를 만든다고 생각하면

한두개의 클래스로 절대로 끝낼 수 없을거에요.

그럴 때 관련있는 기능들을

분류해놓는 게 좋겠죠??

그러므로 꼭 패키지에 대해서 알아야합니다


1) 패키지 사용

패키지를 만든 후 클래스를 만들어야한다

다음과 같이

pack 패키지안에

pack.a 와 pack.b 패키지를

만들었습니다.

(클래스명은 동일하게 생성함)

package pack.a;

 

public class Data_1 {

 

public Data_1 () {

System.out.println("@@pack.a의 클래스");}}

///////////

package pack.b;

 

public class Data_1 {

public Data_1 () {

System.out.println("@@pack.b의 클래스");}}

 

일단 pack패키지를 사용해서 예시를 보여드릴게요

package pack;  //패키지를 사용할 때는  첫줄에 꼭 !! package  패키지이름;  필수

public class Data_ { //pack 패키지 안에 Data_ 클래스를 만듬

public Data_(){ //기본생성자(매개변수x)

//public == 어디서든 접근 할 수 있음 (private == 같은 클래스만 접근 가능)

System.out.println("pack패키지의 클래스");}

}


메인코드 사용 시 어떻게 동작하는지

설명 해드리겠습니다.

 

같은 패키지 )

패키지경로를

적지않고 생성가능

 

사용자와 다른 패키지)

사용하려는 패키지의

전체 경로 적고

클래스 접근 가능

ex) pack.a.Data_ 

 

import)

package 다음줄에 사용가능

pack.a.Data_  처럼 경로를 모두 적는건

불편하다. import를 사용해보자

import pack.b.* ==

pack.b의 모든클래스를

사용하겠단 뜻

 

같은 이름의 클래스가

두개 이상 있다면

하나만 사용할 수 있다.

자주 사용하는 패키지를

import 하자 !!!

 

package pack;

 

import pack.b.*;

//다른패키지를 사용할때 import 패키지경로를 사용해주면

패키지의 경로를 적지않고 인스턴스생성가능

public class Data_main {

public static void main(String[] args) {

Data_ data = new Data_()

System.out.println();

 

System.out.println("pack.a의 인스턴스 생성 ");

pack.a.Data_1 dataA = new pack.a.Data_1();

System.out.println();

 

System.out.println("pack.b 의 인스턴스 생성");

System.out.println("import 를 사용해 패키지명을 안 적고 생성가능");

Data_1 dataB = new Data_1();}}

출력

@@pack패키지의 클래스

 

pack.a의 인스턴스 생성

@@pack.a의 클래스

 

pack.b의 Data_1을 더 자주 사용한다 가정

pack.b 의 인스턴스 생성

import 를 사용해 패키지명을 안 적고 생성가능

@@pack.b의 클래스

 


2) 패키지의 계층 구조

위 패키지를 보면 pack 하위에

a, b 가 존재하는데

모두 각자 독립적인 패키지이다

pack , pack.a , pack.b

( 상속관계와는 아예 다름)

 

왜 이렇게 패키지가 표현이되는지???

 단순하게

큰 분류에서 작은 분류로

표현을 위해서입니다

 

ex)

store

  service

  order

  storage

  user

--------------

상점에

서비스 , 주문, 창고,고객이

있다 생각 해보자

다 다른것이다 !!!

(큰 분류에서 작은분류로

정리해놨을 뿐 !!)