๊ด€๋ฆฌ ๋ฉ”๋‰ด

โœ๐Ÿป๊ธฐ๋กํ•˜๋Š” ๋ธ”๋กœ๊ทธ

[ JAVA ] package ๋ณธ๋ฌธ

Language/Java

[ JAVA ] package

์ฉ์‹œํ‚ด 2021. 1. 1. 22:36
728x90

์ž๋ฐ” ๋ผ์ด๋ธŒ ์Šคํ„ฐ๋”” 7์ฃผ ์ฐจ - package

github.com/whiteship/live-study/issues/7#issuecomment-753317704


1. package ํ‚ค์›Œ๋“œ

package ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋น„์Šทํ•œ ์„ฑ๊ฒฉ์˜ ์ž๋ฐ” ํด๋ž˜์Šค๋ฅผ ๋ถ„๋ฅ˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

ํด๋ž˜์Šค ์œ„์— ์•„๋ž˜์™€ ๊ฐ™์ด ์„ ์–ธํ•œ๋‹ค.

package [ํŒจํ‚ค์ง€๋ช…]
package pakageHouse;

public class pakageTest1 {
    public static void main(String[] args) {
        System.out.println("pakagetest1");
    }
}

ํด๋ž˜์Šค ์ƒ์„ฑ ์‹œ์—๋Š” ๋‹ค๋ฅธ ์œ„์น˜์— ๋†“์•„๋„ ๊ฐ™์€ ํŒจํ‚ค์ง€ ์„ ์–ธ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

packageTest1์ด๋ผ๋Š” ์ž๋ฐ” ํด๋ž˜์Šค๋ฅผ ๋‹ค๋ฅธ ์œ„์น˜์— ๋†“๊ณ  pacakgeํ‚ค์›Œ๋“œ๋กœ ์„ ์–ธ ํ›„ ๋นŒ๋“œํ•œ ๊ฒฐ๊ณผ

pakageTest1.class ํŒŒ์ผ์ด pakageHouseํด๋” ์•ˆ์— ์ƒ์„ฑ๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.


2. import ํ‚ค์›Œ๋“œ

๋‹ค๋ฅธ ํด๋ž˜์Šค์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์€ ํด๋ž˜์Šค๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ์œ„ํ•ด์„œ๋Š” import ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

์˜ˆ์‹œ houseKim ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์•„๋ž˜์™€ ๊ฐ™์ด ์„ ์–ธํ•˜์—ฌ HouseKim์— ์„ ์–ธ๋œ ๋ฉ”์„œ๋“œ๋ฅผ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

import jump2java.house.HouseKim;

ํ•˜์œ„ ๋ชจ๋“  ํด๋ž˜์Šค ๊ธฐ๋Šฅ์„ ๊ฐ€์ ธ์™€์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

๊ฐ™์€ ํŒจํ‚ค์ง€๋ผ๋ฉด import ํ‚ค์›Œ๋“œ ์„ ์–ธ ์—†์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅ

import jump2java.house.*;

 

์ด๋ ‡๊ฒŒ ํŒจํ‚ค์ง€๋ฅผ ์ด์šฉํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ด์ ์ด ์žˆ๋‹ค.

  • ํด๋ž˜์Šค์˜ ๋ถ„๋ฅ˜๊ฐ€ ์šฉ์ดํ•˜๋‹ค. (๋น„์Šทํ•œ ๊ฒƒ ๋ผ๋ฆฌ ๋ฌถ๋Š”๋‹ค)
  • ํŒจํ‚ค์ง€๊ฐ€ ๋‹ค๋ฅด๋‹ค๋ฉด ๋™์ผํ•œ ํด๋ž˜์Šค๋ช…์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

3. CLASS PATH

์ž๋ฐ”๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ํด๋ž˜์Šค์˜ ์œ„์น˜๋ฅผ ์ง€์ •ํ•˜๋Š” ์—ญํ• 

์ž๋ฐ” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ํด๋ž˜์Šค๊ฐ€ ์—ฌ๋Ÿฌ ๊ฒฝ๋กœ์— ๋ถ„์‚ฐ๋˜์–ด์žˆ์„ ๋•Œ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

class Item2{
    public void print(){
        System.out.println("Hellow world");
    }
}


public class ClasspathDemo {
    public static void main(String[] args) {
        Item2 i1 = new Item2();
        i1.print();
    }
}

์œ„์˜ ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•˜๋ฉด Item 2.class, ClasspathDemo.class๋‘๊ฐœ์˜ ํด๋ž˜์Šค ํŒŒ์ผ์ด ์ƒ์„ฑ๋œ๋‹ค.

main๋ฉ”์„œ๋“œ๋Š” item 2๋ฅผ ์ธ์Šคํ„ด์Šคํ™” ํ•˜์—ฌ print() ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค.

 

ํ˜„์žฌ Item 2.class, ClasspathDemo.class๊ฐ€ ์žˆ๋Š” ๊ฒฝ๋กœ์—์„œ ํด๋” ํ•˜๋‚˜๋ฅผ ๋งŒ๋“  ๋’ค ClasspathDemo๊ฐ€ ํ˜ธ์ถœํ•˜๋Š” Item 2.class๋ฅผ ์ƒˆ๋กœ ์ƒ์„ฑํ•œ testํด๋”๋กœ ์ด๋™์‹œ์ผฐ๋‹ค.

 

 

์ด๋™์‹œํ‚จ ํ›„ ClassDemoํด๋ž˜์Šค๋ฅผ ์‹คํ–‰ํ•˜์˜€์„ ๋•Œ ์•„๋ž˜์™€ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์˜€๋‹ค.

main๋ฉ”์„œ๋“œ์—์„œ Item 2๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†๋‹ค๋Š” ๋ฉ”์‹œ์ง€

 

-> ์ด๋Ÿฐ ๊ฒฝ์šฐ jvm์ด ์ž๋ฐ” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•  ๋•Œ ํด๋ž˜์Šค์˜ ์œ„์น˜๋ฅผ ์‰ฝ๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

์„ค์ • ๋ฐฉ๋ฒ•์—๋Š” ์•„๋ž˜ CLASS PATH ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์™€ -classpath ์˜ต์…˜์ด ์žˆ๋‹ค.


4. CLASS PATH ํ™˜๊ฒฝ ๋ณ€์ˆ˜

์‹คํ–‰ํ•  ๋•Œ๋งˆ๋‹ค ํด๋ž˜์Šค ํŒจ์Šค๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์ด ๊ท€์ฐฎ์œผ๋ฏ€๋กœ ํด๋ž˜์Šค ํŒจ์Šค๋ฅผ ์‹œ์Šคํ…œ์˜ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋กœ ์ง€์ • ๊ฐ€๋Šฅ

jvm์ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰์‹œํ‚ฌ ๋•Œ ํ™˜๊ฒฝ๋ณ€์ˆ˜(์šด์˜์ฒด์ œ์— ์ง€์ •๋˜๋Š” ๋ณ€์ˆ˜)๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ์‹คํ–‰ํ•œ๋‹ค.

 


5. -classpath ์˜ต์…˜

ํ„ฐ๋ฏธ๋„ ๋ฐ cmd ์ฐฝ์—์„œ ์ง์ ‘ classpath ์˜ต์…˜์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

java -classpath ".;[์ฐพ์•„๊ฐˆ ํด๋”๋ช…]" [์‹คํ–‰ํ•  ํด๋ž˜์Šค๋ช…]
java -classpath ",;test" ClasspathDemo
java -classpath ",:test" ClasspathDemo //linux, unix๊ณ„์—ด์€ ์ฝœ๋ก ์„ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค.

-classpath ์˜ต์…˜์€ ์ž๋ฐ” ํด๋ž˜์Šค๋ฅผ ์‹คํ–‰ํ•  ๋•Œ jvm์—๊ฒŒ ์‚ฌ์šฉํ•  ํด๋ž˜์Šค๋“ค์˜ ์œ„์น˜๋ฅผ ์•Œ๋ ค์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

 

์˜ต์…˜์„ ์„ค๋ช…ํ•˜์ž๋ฉด

. ํ˜„์žฌ ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ ํด๋ž˜์Šค๋ฅผ ์ฐพ๋Š”๋‹ค ๋ผ๋Š” ๋œป
; (์œˆ๋„์šฐ) / : (๋ฆฌ๋ˆ…์Šค, ์œ ๋‹‰์Šค) ๊ตฌ๋ถ„์ž
[์ฐพ์•„๊ฐˆ ํด๋”๋ช…] .์ด ์˜๋ฏธํ•˜๋Š” ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์— ์ฐพ๋Š” ํด๋ž˜์Šค๊ฐ€ ์—†๋‹ค๋ฉด ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ์ค‘ [์ฐพ์•„๊ฐˆ ํด๋”๋ช…]์„ ๊ฐ€์ง€๋Š” ๋””๋ ‰ํ† ๋ฆฌ๋กœ ๊ฐ€์„œ ํด๋ž˜์Šค๋ฅผ ์ฐพ์œผ๋ผ๋Š” ๋œป

6. ์ ‘๊ทผ ์ง€์‹œ์ž

  public protected default private
๊ฐ™์€ ํŒจํ‚ค์ง€, ๊ฐ™์€ ํด๋ž˜์Šค ํ—ˆ์šฉ ํ—ˆ์šฉ ํ—ˆ์šฉ ํ—ˆ์šฉ
๊ฐ™์€ ํŒจํ‚ค์ง€, ์ƒ์† ๊ด€๊ณ„ ํ—ˆ์šฉ ํ—ˆ์šฉ ํ—ˆ์šฉ ๋ถˆ์šฉ
๊ฐ™์€ ํŒจํ‚ค์ง€, ์ƒ์† ๊ด€๊ณ„ ์•„๋‹˜ ํ—ˆ์šฉ ํ—ˆ์šฉ ํ—ˆ์šฉ ๋ถˆ์šฉ
๋‹ค๋ฅธ ํŒจํ‚ค์ง€, ์ƒ์† ๊ด€๊ณ„ ํ—ˆ์šฉ ํ—ˆ์šฉ ๋ถˆ์šฉ ๋ถˆ์šฉ
๋‹ค๋ฅธ ํŒจํ‚ค์ง€, ์ƒ์† ๊ด€๊ณ„ ์•„๋‹˜ ํ—ˆ์šฉ ๋ถˆ์šฉ ๋ถˆ์šฉ ๋ถˆ์šฉ

public

์–ด๋””์„œ๋‚˜ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅ

private

ํด๋ž˜์Šค ๋‚ด๋ถ€์—์„œ๋งŒ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅ, ํด๋ž˜์Šค ์™ธ๋ถ€์—์„œ ์ ‘๊ทผ์ด ๋ถˆ๊ฐ€ํ•จ

private ํ•œ ๋ณ€์ˆ˜์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด public ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณตํ•จ ( get, set) ํด๋ž˜์Šค ๋‚ด๋ถ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ž˜๋ชป ์‚ฌ์šฉํ•˜๋Š” ์˜ค๋ฅ˜๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.

protected

๊ฐ™์€ ํŒจํ‚ค์ง€ ๋‚ด๋ถ€์—์„œ ์ ‘๊ทผ ๊ฐ€๋Šฅ. ์ƒ์† ์‹œ ์ƒ์œ„ ํด๋ž˜์Šค์˜ private ๋ณ€์ˆ˜๋‚˜ ๋ฉ”์„œ๋“œ๋ฅผ ์ƒ์†๋ฐ›์€ ํ•˜์œ„ ํด๋ž˜์Šค๊ฐ€ public ๋ณ€์ˆ˜์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•˜๋„๋ก ํ•  ๋•Œ protected๋กœ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธ

์•„๋ฌด๊ฒƒ๋„ ์•ˆ ์“ฐ๋Š” ๊ฒฝ์šฐ ( default ๊ธฐ๋ณธ ์ ‘๊ทผ ์ œ์–ด์ž)

๊ฐ™์€ ํŒจํ‚ค์ง€ ๋‚ด์—์„œ๋งŒ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅ, ์„œ๋กœ ๋‹ค๋ฅธ ํŒจํ‚ค์ง€์—์„œ๋Š” ์ ‘๊ทผ์ด ๋ถˆ๊ฐ€

 

ํด๋ž˜์Šค์˜ ์ ‘๊ทผ ์ œ์–ด์ž

public 

public์œผ๋กœ ์„ ์–ธ๋œ ํด๋ž˜์Šค๋Š” ๋‹ค๋ฅธ ํŒจํ‚ค์ง€์˜ ํด๋ž˜์Šค์—์„œ๋„ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅ

์•„๋ฌด๊ฒƒ๋„ ์•ˆ ์“ฐ๋Š” ๊ฒฝ์šฐ ( default ๊ธฐ๋ณธ ์ ‘๊ทผ ์ œ์–ด์ž)

๊ฐ™์€ ํŒจํ‚ค์ง€์—์„œ๋งŒ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•œ ํด๋ž˜์Šค์ด๋‹ค.


[์ฐธ๊ณ ]

opentutorials.org/course/1223/5527

opentutorials.org/course/1223/6061

effectivesquid.tistory.com/entry/%EC%9E%90%EB%B0%94-%ED%81%B4%EB%9E%98%EC%8A%A4%ED%8C%A8%EC%8A%A4classpath%EB%9E%80

728x90
๋ฐ˜์‘ํ˜•

'Language > Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

์˜ˆ์™ธ์ฒ˜๋ฆฌ  (0) 2021.01.14
[ JAVA ] ์ธํ„ฐํŽ˜์ด์Šค  (0) 2021.01.08
[ JAVA ] ์ƒ์†  (0) 2020.12.25
[ JAVA ] ์ถ”์ƒํด๋ž˜์Šค  (0) 2020.12.20
[ JAVA ] ๊ธฐ๋ณธํด๋ž˜์Šค ( Object, String, Wrapper)  (0) 2020.12.13