๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿš— Major Study (Bachelor)/๐ŸŸ  JAVA Programming

JAVA ํ”„๋กœ๊ทธ๋ž˜๋ฐ 6.2

by UKHYUN22 2021. 10. 26.
728x90

6.2 Static Methods and Static variables

 

๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ Object๋ฅผ ๋งŒ๋“ค ํ•„์š” ์—†์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”์†Œ๋“œ

๋ฐ”๋กœ ํด๋ž˜์Šค ์ด๋ฆ„. ์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ Static ๋ฉ”์†Œ๋“œ๋ผ๊ณ  ํ•œ๋‹ค.

ํด๋ž˜์Šค ๋ฉ”์†Œ๋“œ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. (ํด๋ž˜์Šค ๋ฉ”์†Œ๋“œ๊ฐ€ Static ๋ฉ”์†Œ๋“œ๋ฅผ ์–˜๊ธฐํ•˜๋Š” ๊ฒƒ)

 

Static ๋ฉ”์†Œ๋“œ๋ฅผ Object๋ฅผ ๋งŒ๋“ค์ง€ ์•Š๊ณ  ๋ฐ”๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์—

Instance Variable์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋‹ค.

๊ทธ๋Ÿฌ๋ฏ€๋กœ Instance Variable์„ ์ง์ ‘ Reference ํ•  ์ˆ˜ ์—†๋‹ค.

 

 

Non Static Method๋Š” Static Variable์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ณ  non static varaible๋„ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.

Static variable์€ Static Variable์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์ง€๋งŒ Instacnce Variable์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋‹ค.

์™œ๋ƒํ•˜๋ฉด Object๋ฅผ ๋งŒ๋“ค์–ด์„œ Object์— Instance Variable์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”์†Œ๋“œ๊ฐ€ ์žˆ์–ด์•ผ

์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

 

 

Static Method๋„ Object๋ฅผ Parameter๋กœ ๋ฐ›๋Š”๋‹ค๋ฉด ์ด๋ฅผ ํ™œ์šฉํ•˜์—ฌ Instance Varaible์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

main ๋„ static method ์ค‘ ํ•˜๋‚˜์ด๋‹ค.

์–ด๋Š ํด๋ž˜์Šค๋Š” main์ด ์žˆ๊ธฐ๋„ ํ•˜๊ณ  ์—†๊ธฐ๋„ ํ–ˆ๋‹ค.

ํ…Œ์ŠคํŠธ ํ•˜๋Š” ์ „๋‹ด Main ๋งค์†Œ๋“œ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ๋„ ํ•œ๋‹ค.

main Method ์•ˆ์— non Static ๋ฉ”์†Œ๋“œ๊ฐ€ ๊ทธ๋Œ€๋กœ ๋“ค์–ด๊ฐ€๋ฉด ์•ˆ๋œ๋‹ค.

๋ฐ˜๋“œ์‹œ Object๋ฅผ ๋งŒ๋“ค์–ด์„œ Object. ํ•ด์„œ ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

ํ•œ ํด๋ž˜์Šค ์•ˆ์—์„œ ์„ ์–ธ๋œ static Main Method๋Š” ํ•ด๋‹น ํด๋ž˜์Šค๊ฐ€ ์ž˜ ๊ตฌํ˜„๋˜์–ด ์žˆ๋Š”์ง€๋ฅผ

ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ Test Method ์ด๊ณ  Static ์ด๋ฏ€๋กœ Object๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

 

 

๊ฐ™์€ ํด๋ž˜์Šค ์•ˆ์—์„œ ์‚ฌ์šฉ๋˜๋Š” Non Static Method -> setDiameter๋ฅผ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์ง€๋งŒ

ํ•ด๋‹น ๋ฉ”์†Œ๋“œ๋Š” Nonstatic ๋ฉ”์†Œ๋“œ์ด๋ฏ€๋กœ Object๋ฅผ ํ†ตํ•ด์„œ Invoke๊ฐ€ ๋˜์–ด์•ผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ฐ™์€ ํด๋ž˜์Šค ์•ˆ์ด์–ด๋„ ํด๋ž˜์Šค์— ํ•ด๋‹นํ•˜๋Š” Object๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

static Method๋ผ๋ฉด ํด๋ž˜์Šค ์ด๋ฆ„. ๋ฉ”์†Œ๋“œ๋กœ ์‚ฌ์šฉํ•ด๋„ ๋œ๋‹ค.

Main ๋ฉ”์†Œ๋“œ๋ฅผ ํ†ตํ•ด์„œ ํ…Œ์ŠคํŠธ๊ฐ€ ๋‹ค ๋๋‚ฌ๋‹ค๊ณ  ํ•ด๋„ ๊ตณ์ด ์—†์•จ ํ•„์š”๊ฐ€ ์—†๋‹ค.

 

 

Static Variable์˜ ์˜๋ฏธ.

ํด๋ž˜์Šค์— ํ•ด๋‹นํ•˜๋Š” Object๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ ๋งŒ๋“ค์—ˆ๋‹ค๊ณ  ํ•˜๋”๋ผ๋„

Static Variable์˜ ๊ณต๊ฐ„์€ ๊ณต์œ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์œ ์šฉํ•˜๋‹ค.

final์ด ๋ถ™์€ ๊ฒฝ์šฐ ๊ฐ’์ด ๋ฐ”๋€Œ์ง€ ์•Š๋Š” ์ƒ์ˆ˜์˜ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง„๋‹ค.

 

 

Static Variable์„ Class Variable์ด๋ผ๊ณ  ๋ถ€๋ฅด๊ธฐ๋„ ํ•œ๋‹ค.

ํด๋ž˜์Šค ์•ˆ์—๋Š” Static Variable๊ณผ Instance Variable์ด ์žˆ๊ณ  ์ด ๋ถ€๋ถ„์„ Field๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

 

 

Only one copy of a static variable

 

Object๊ฐ€ ์—ฌ๋Ÿฌ ๋ฒˆ ์„ ์–ธ๋˜๋”๋ผ๊ณ  Static Variable์— ๋Œ€ํ•œ ๊ณต๊ฐ„์€ ๋ณ€ํ•˜์ง€ ์•Š๋Š”๋‹ค.

 

 

Wrapper Classes

 

primitive type์„ Class type์œผ๋กœ ์Šน๊ฒฉ์‹œ์ผœ์ค€๋‹ค.

 

 

Wrapper Class ์™€ Primitive Type์œผ๋กœ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๊ทธ ์‚ฌ์šฉ๋ฒ•์ด ๋‹ค๋ฅด๋‹ค.