# Java Static
# Static์ด๋?
ํ๋ก๊ทธ๋๋ฐ ์ฉ์ด๋ก์จ์ Static์ ์ ์ ์,๊ณ ์ ์ ๋ป์ผ๋ก ์๊ฐํ๋ฉด ๋๋ค.
์๋ฐ์์๋ ์ด๋ป๊ฒ ์ฐ์ด๋ ์๋์ ์ค๋ช ์ ๋ณด์.
๋จผ์ , ์๋ฐ๋ Statically Type Variable (์ ์ ํ์ ๋ณ์)๋ฅผ ๊ฐ์ง๋ค.
์๋ฅผ ๋ค์ด, ๋ณ์๋ฅผ ์ฌ์ฉํ ๋ ์๋์ ๊ฐ์ด ์ฌ์ฉํ๋ค.
int a = 1;
int๋ผ๋ ์๋ฃํ์ ๋ฏธ๋ฆฌ ์ ํด์ค์ผ๋ก์จ a ๋ณ์๋ ์ ์ ์ค์ ๋ฐ์ดํฐ ๋ฐ์ ์ฃ์ง ๋ชปํ๋ค.
๋ฏธ๋ฆฌ ์๋ฃํ์ ๊ณ ์ ํ๋ฏ๋ก Static๊ฐ๋ ์ด๋ค.
๋ง์ ์คํฌ๋ฆฝํธ ์ธ์ด๊ฐ ์ ๊ฐ๋ ๊ณผ์ ๋ฐ๋์ธ Dynamically Type Variable(๋์ ํ์ ๋ณ์)๋ฅผ ๊ฐ์ง๋ค.
์๋ฅผ ๋ค์ด, ์๋ฐ์คํฌ๋ฆฝํธ์์๋ ์๋์ ๊ฐ์ด ๋ณ์๋ฅผ ์ฌ์ฉํ๋ค.
var a = 1;
์ฌ๊ธฐ์๋ var(Variable์ ์ฝ์) ์ด๋ผ๋ ๋ณ์ ํ์์ ํจ๊ป ๋ณ์๋ช a๋ฅผ ์ ์ธ ํ์๋, ์ค์ ๋ฐ์ดํฐ์ ์ข ๋ฅ์ ๋ฐ๋ผ ๋์ ์ผ๋ก
ํ์ ์ด ๊ฒฐ์ ๋๋ค. ์ ์์๋ ์ค์ ๋ฐ์ดํฐ๊ฐ ์ ์ํ ์ด๋ฏ๋ก a์ ์๋ฃํ์ ์ ์ํ์ด ๋๋๊ฒ์ด๋ค.
๋๋ฒ์งธ๋ก, ์๋ฐ๋ static ์์ฝ์ด๋ฅผ ์ ๊ณตํ๋ค. ์ ๊ฐ๋ ์์ ์ดํด ๋ณด์๋์, Static์ ์ ์ ์ ๊ณ ์ ์ ๋ป์ผ๋ก ์๊ฐํ๋ฉด ๋๋ค. ์๋์ ์์๋ฅผ ๋ณด์.
public class StaticTest{
static public int a = 1;
public int b = 3;
static public void add(){
}
}
์ ์์๋ int ํ ๋ณ์ a ๋ฅผ static ์์ ์ด๋ฅผ ํตํด ๊ณ ์ ์์ผ ๋์๋ค. ์ด๋ ๊ณ ์ ์์ผ ๋์ ๊ฒ ์ผ๊น?
๋ต์ ๋ฉ๋ชจ๋ฆฌ์ ๋ฏธ๋ฆฌ ๊ณ ์ ์์ผ ๋์๊ฒ์ด๋ค.
ํด๋์ค ์์ ๋ณ์๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ์ธ์คํด์ค๋ฅผ ์์ฑํด์ผ ํ๋ค.
ex)
StaticTest st = new StaticTest();
st.a;
st.add;
<์ธ์คํด์ค ๋ณ์. ๋ณ์ or ๋ฉ์๋>
ํ์ง๋ง, static ์์ฝ์ด๋ฅผ ์ฌ์ฉํ๋ฉด ์ธ์คํด์ค๋ฅผ ์์ฑํ๊ธฐ ์ ์ ๋ฏธ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ ค๋ ๊ณ ์ ์ํจ๋ค.
์ด๋ ๊ฒ ๋๋ฉด ๋ฌด์จ ํน์ง์ด ์์๊น? ์๋์ ๊ฐ์ ํน์ง์ด ์๋ค.
- ์ธ์คํด์ค๋ฅผ ์์ฑํ ํ ์ด์ฉ๊ฐ๋ฅ ํ๋ ๋ณ์๊ฐ static ์์ฝ์ด๋ฅผ ์ฌ์ฉํจ์ผ๋ก์จ, ๋ฏธ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ ์์ผ๋ฏ๋ก, ์ธ์คํด์ค ์์ฑ ์์ด ๋ฐ๋ก ์ฌ์ฉ๊ฐ๋ฅํ๋ค.
StaticTest.a;
StaticTest.add();
<ํด๋์ค.๋ณ์ or ๋ฉ์๋>
- StaticTest ์ ์ธ์คํด์ค๋ฅผ ๋ช๊ฐ๋ฅผ ์์ฑํ๋ a์ ๋ณ์๋ ์ด๋ฏธ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ ์์ผ๋ฏ๋ก,
์ธ์คํด์ค ๋ง๋ค ๋ณ์ a๊ฐ ์๊ธฐ๋ ๊ฒ์ด ์๋๋ผ ๋ฉ๋ชจ๋ฆฌ์ ๋ฏธ๋ฆฌ ์ฌ๋ผ๊ฐ ์๋ ๋ณ์ a๋ฅผ ๊ณต์ ํ๋ค.
๋ฐ๋ผ์ static ์์ฝ์ด๋ฅผ ์ฌ์ฉํ ๋ณ์๋ ๊ณต์ ๋ณ์ ๋ผ๊ณ ๋ ๋ถ๋ฆฐ๋ค.
๋ณ์a๋ฅผ ๊ณต์ ํ๋ฏ๋ก ๋ณ์aํฌ๊ธฐ ๋งํผ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋ ์ ๋ ์๋ค.
๋ฉ์๋๋ ๋๊ฐ์ด ์๊ฐํ๋ฉด ๋๋ค.
- ๋ง์ฝ ๋ณ์b๋ฅผ static ๋ฉ์๋ add์์๋ค๊ฐ ์ฌ์ฉํ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.
์ด์ ๋ int b๋ StaticTest์ ์ธ์คํด์ค๊ฐ ์์ฑ๋์ด์ผ ์ธ์ ์๋ ๋ฉค๋ฒ๋ณ์์ง๋ง,
static public void add()๋ ์ธ์คํด์ค๊ฐ ์๊ธฐ๊ธธ ๊ธฐ๋ค๋ ค์ฃผ์ง ์๊ณ ๋ฐ๋ก ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ๊ธฐ ๋๋ฌธ์
StaticTest์์ ์ผ๋ฐ ๋ฉค๋ฒ๋ณ์ b๋ ์ฐ์ง ๋ชปํ๋ค.
ํ๋ก๊ทธ๋๋ฐ ๊ฐ๋ ์ผ๋ก์์ static์ ๊ณ ์ ํ๋ค, ์ ์ ์ด๋ค. ๋ผ๋ ๋ป์ด๋ฏ๋ก
์๋ฐ ๋ฟ๋ง ์๋๋ผ static ๊ฐ๋ ์ด ๋์ค๋ ๋ชจ๋ ํ๋ก๊ทธ๋๋ฐ์ ์ ๊ฐ๋ ์ผ๋ก ์ดํดํ๋ฉด ์ข์ ๊ฒ ์ด๋ค.
# Reference
https://mommoo.tistory.com/24?category=577684 [๊ฐ๋ฐ์๋ก ํ๋ก ์๊ธฐ]