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์ผ๋ก ๋ณ์๋ฅผ ์ฌ์ฉํ ๋ ๊ทธ ์ฌ์ฉ๋ฒ์ด ๋ค๋ฅด๋ค.
'๐ Major Study (Bachelor) > ๐ JAVA Programming' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
JAVA ํ๋ก๊ทธ๋๋ฐ 8.2 (0) | 2021.10.26 |
---|---|
JAVA ํ๋ก๊ทธ๋๋ฐ 8.1 (0) | 2021.10.26 |
JAVA ํ๋ก๊ทธ๋๋ฐ 7.6 (JavaFX) (0) | 2021.10.26 |
JAVA ํ๋ก๊ทธ๋๋ฐ 7.5 (0) | 2021.10.26 |
JAVA ํ๋ก๊ทธ๋๋ฐ 6.1 (0) | 2021.10.26 |