[JAVA] ์ ‘๊ทผ ์ œํ•œ์ž(Access Modifier)

2021. 2. 2. 23:02ใ†๊ฐœ๋… ์ •๋ฆฌ ์ž‘์—…์‹ค/Java

728x90
๋ฐ˜์‘ํ˜•

์•ˆ๋…•ํ•˜์„ธ์š”? ์ฃผ๋‹ˆํ•˜๋ž‘ ์ž…๋‹ˆ๋‹ค!

์ฃผ๋‹ˆํ•˜๋ž‘์€ 2020๋…„ 02์›” 01์ผ ๋ถ€ํ„ฐ ๊ตญ๋น„์ง€์› ๊ต์œก์œผ๋กœ FullStack ๊ณผ์ •์„ ๋“ฃ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด์— ๊ณต๋ถ€ ํ•  ๊ฒƒ์„ ๋ณต์Šตํ• ๊ฒธ ํฌ์ŠคํŒ…์„ ์‹œ์ž‘ ํ•ด ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ €์˜ ๊ธ€์ด ๋„์›€์ด ๋˜์…จ๋‹ค๋ฉด ๊ตฌ๋…๊ณผ ๊ณต๊ฐ! ๊ทธ๋ฆฌ๊ณ , ๋Œ“๊ธ€ ๋‹ฌ์•„์ฃผ์‹œ๋ฉด ๋Œ€๋‹จํžˆ ๊ณ ๋ง™๊ฒ ์Šต๋‹ˆ๋‹ค!

 


 

๐Ÿ“Œ JAVA๋ž€?


    ๐Ÿ“ ๊ฐ์ฒด์ง€ํ–ฅ์–ธ์–ด (Objec Oriented Programming Language)

         ๐Ÿ‘‰ C์–ธ์–ด๋Š” ์ ˆ์ฐจ ์ง€ํ–ฅ ์–ธ์–ด (Structured Programming Language)์ด๋‹ค.

        ๐Ÿ‘‰ ๊ฐ์ฒด์ง€ํ–ฅ์–ธ์–ด์˜ ์žฅ์ ์€ ์žฌํ™œ์šฉ์„ฑ์ด๋‹ค.

             -> ์žฌํ™œ์šฉ์„ฑ์€ ์œ ์ง€๋ณด์ˆ˜ ์ธก๋ฉด์—์„œ ๋งค์šฐ ์ค‘์š”!

 

 

 

 

 

๐Ÿ“Œ ์ ‘๊ทผ์ œํ•œ์ž


Member๋“ค์€ Object ์ž์‹ ๋“ค๋งŒ์˜ ์†์ •์ด์ž ํŠน์ง•์ด๋ฏ€๋กœ, ๋Œ€์™ธ์ ์œผ๋กœ ๊ณต๊ฐœ๋˜๋Š” ๊ฒƒ์ด ์•ˆ ์ข‹์„ ๋•Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ์ด์œ ๋กœ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ Object์˜ Member์—๊ฒŒ ์ ‘๊ทผ ์ œํ•œ์„ ๊ฑธ ์ˆ˜๊ฐ€ ์žˆ๋Š”๋ฐ, JAVA์—์„œ๋Š” ์ด๋ฅผ '์ ‘๊ทผ ์ œํ•œ์ž'๋ผ ํ•ฉ๋‹ˆ๋‹ค. 

์ถœ์ฒ˜: https://hunit.tistory.com/162

ใ€€ใ€€ใ€€ใ€€๐Ÿ‘‰ ์ ‘๊ทผ ์ œํ•œ์ž ๋ฒ”์œ„ ์ˆœ์„œ: Public > Protected > Default > Private

 

 

     

 

 

๐Ÿ“ Public: ๋ชจ๋“  ์ ‘๊ทผ์„ ํ—ˆ์šฉ

ใ€€ใ€€ใ€€ใ€€๐Ÿ‘‰ ๋„ค์ด๋ฒ„ ์นดํŽ˜๋“ฑ๊ณผ ๋น„์œ ๋ฅผ ํ•œ๋‹ค๋ฉด ๊ฐ€์ž…์„ ์•ˆํ•ด๋„ ๋ณผ ์ˆ˜ ์žˆ๋Š” ์ „์ฒด ๊ณต๊ฐœ๊ธ€์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์™ธ๋ถ€์˜ ๋ชจ๋“  ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€Class ๋ฐ ์ƒ์„ฑ์ž, Method, Field๋กœ๋ถ€ํ„ฐ ์ ‘๊ทผ์„ ์™„์ „ํžˆ ํ—ˆ์šฉํ•˜๊ณ , ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๋“ค์—๊ฒŒ Library์ฒ˜๋Ÿผ  ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€๊ณต์œ ํ•˜๋ ค๊ณ  ํ•œ๋‹ค๋ฉด ์ด๊ฒƒ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜: https://hunit.tistory.com/162

 

์ถœ์ฒ˜: https://hunit.tistory.com/162

ใ€€ใ€€ใ€€ใ€€๐Ÿ‘‰ Package๊ฐ€ ๋‹ค๋ฅธ Package์—์„œ import๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

 

     ๐Ÿ“ Protected: ๊ฐ™์€ Package(Folder)์— ์žˆ๋Š” Object์™€ ์ƒ์†๊ด€๊ณ„์˜ Object๋“ค์—๊ฒŒ๋งŒ

  ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€์ ‘๊ทผ ํ—ˆ์šฉ. ์ฆ‰, ์ƒ์† ๊ด€๊ณ„๊ฐ€ ์—†๋Š” ๋‹ค๋ฅธ Package Class ์ ‘๊ทผ ์ฐจ๋‹จ.

 

ใ€€ใ€€ใ€€ใ€€๐Ÿ‘‰ ๋‹ค๋ฅธ Package์— ์žˆ๋Š” ์ƒ์„ฑ์ž, Method, Field๋Š” ํ˜ธ์ถœํ•˜์ง€ ๋ชปํ•˜์ง€๋งŒ, ์ƒ์† ๊ด€๊ณ„๊ฐ€ ์žˆ๋Š” Class๋ผ๋ฉด ์˜ˆ์™ธ๋กœ

ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ํ˜ธ์ถœ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

 

์ถœ์ฒ˜: https://hunit.tistory.com/162

 

์ถœ์ฒ˜: https://hunit.tistory.com/162

 

ใ€€ใ€€ใ€€ใ€€๐Ÿ‘‰ ์œ„์˜ ์‚ฌ์ง„๊ณผ ๊ฐ™์ด Package๊ฐ€ ๋‹ค๋ฅด๋‚˜, ์ƒ์†์„ ๋ฐ›๋Š” ๊ด€๊ณ„๋ผ๋ฉด ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

ใ€€ใ€€ใ€€ใ€€๐Ÿ‘‰ Package1์— ์žˆ๋Š” test1 Class์—์„œ ๋‹ค๋ฅธ Package์— ์žˆ๋Š” Protected ์ƒ์„ฑ์ž๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•ด test3 Class๋ฅผ

ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€์ƒ์† ๋ฐ›์•˜๋”๋‹ˆ ์ •์ƒ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์ด์ง€์š”. ๋ฐ˜๋Œ€๋กœ test3์—์„œ test1์„ ์ƒ์† ๋ฐ›์œผ๋ ค๊ณ  ํ•œ๋‹ค๋ฉด

ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒ ํ•ฉ๋‹ˆ๋‹ค.

ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€-> ๋‹จ, Protected๊ฐ€ ๋“ค์–ด์žˆ๋Š” Class๊ฐ€ ๋ถ€๋ชจ Class (Super Class)๋ผ๋ฉด ๊ฐ€๋Šฅ.

 

 

 

     ๐Ÿ“ Default: ๊ฐ™์€ Package(Foler)์— ์žˆ๋Š” Object๋“ค๋งŒ ์ ‘๊ทผ ํ—ˆ์šฉ. ์ฆ‰, ๋‹ค๋ฅธ Package   ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€Class ์ ‘๊ทผ ์ „๋ถ€ ์ฐจ๋‹จ.

ใ€€ใ€€ใ€€ใ€€๐Ÿ‘‰ Class ์„ ์–ธ ๋‹น์‹œ Public์ด๋‚˜, Protected ํ˜น์€ Private๋ฅผ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์œผ๋ฉด ์˜์–ด ๋‹จ์–ด ๊ทธ๋Œ€๋กœ Dafulat๊ฐ€

ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€๊ธฐ๋ณธ์œผ๋กœ ์„ค์ • ๋˜์–ด ๋‹ค๋ฅธ Package์™€์˜ Class ์„ ์–ธ๊ณผ ์ƒ์„ฑ์ž, Method, Field์˜ ํ˜ธ์ถœ์ด ๋ถˆ๊ฐ€๋Šฅํ•ด์ง‘๋‹ˆ๋‹ค.

ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€๋ฌผ๋ก  ๋™์ผ Package์•ˆ์—์„œ๋Š” ๋ชจ๋“ ๊ฒŒ ํ—ˆ์šฉ์ž…๋‹ˆ๋‹ค.

 

     ๐Ÿ“ Private: ํ˜„์žฌ Object๋‚ด์—์„œ๋งŒ ์ ‘๊ทผ ํ—ˆ์šฉ. ์ฆ‰, ๋ชจ๋“  ์™ธ๋ถ€ Class ์ ‘๊ทผ ์ฐจ๋‹จ.

ใ€€ใ€€ใ€€ใ€€๐Ÿ‘‰ ๊ฒŒ์‹œํŒ ๊ธ€๊ณผ ๋น„์œ ํ•˜์ž๋ฉด ๋น„๊ณต๊ฐœ ๊ธ€์ด๋ผ๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๊ธ€์„ ์“ด ์‚ฌ๋žŒ๋งŒ ๋ณผ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒ๋‹ˆ๋‹ค.

ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€๋™์ผ Package๋“  ๋‹ค๋ฅธ Package๋“  ์ „๋ถ€ ์ ‘๊ทผ์ด ๋ถˆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜: https://hunit.tistory.com/162

ใ€€ใ€€ใ€€ใ€€๐Ÿ‘‰ Private์€ ๋ฌด์กฐ๊ฑด  Class ๋‚ด๋ถ€์—์„œ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

 


์ฃผ๋‹ˆํ•˜๋ž‘์˜ ์ด๋ฒˆ ํฌ์ŠคํŒ…์ด ์–ด๋– ์…จ๋‚˜์š”? ๊ตฌ๋…, ๊ณต๊ฐ๊ณผ ๋Œ“๊ธ€์€ ์ฃผ๋‹ˆํ•˜๋ž‘์—๊ฒŒ ๋งค์šฐ ํฐ ํž˜์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค!

 

728x90
๋ฐ˜์‘ํ˜•