static : ์ ์ , ๊ณ ์ ๋ ์ด๋ ์๋ฏธ
์๋ฐ์์์ static ํค์๋๋? ํด๋์ค, ์ ์ ๋ฉค๋ฒ => static ๋ณ์, static ๋ฉ์๋
Static์ ํน์ง
- ๋ฉ๋ชจ๋ฆฌ์ ๊ณ ์ ์ ์ผ๋ก ํ ๋น
- ๊ฐ์ฒด ์์ฑ ์์ด ์ฌ์ฉ ๊ฐ๋ฅ
- static ๋ฉ์๋ ๋ด์์๋ ์ธ์คํด์ค ๋ณ์ ์ฌ์ฉ ๋ถ๊ฐ
- ํ๋ฒ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ๋ฉด ๋ฉ๋ชจ๋ฆฌ์ static ์์ญ์ ์ ์ฌ๋๊ณ , ํ๋ก๊ทธ๋จ์ด ์ข ๋ฃ๋ ๋ ํด์ ๋จ => GC๊ฐ ํํฐ๋ง ํ์ง ๋ชปํจ
public class Ex {
public void test() {
System.out.println("์ถ๋ ฅ๋ ๊น?");
}
public static void main() {
// test(); // ๋ฉ์ธ์ง ์ถ๋ ฅ๋์ง ์๊ณ , ์ปดํ์ผ ์๋ฌ ๋ฐ์!
}
}
=> ์ปดํ์ผ ์๋ฌ ๋ฐ์ ์ด์ : print ๋ฉ์๋๊ฐ static ๋ฉ์๋๊ฐ ์๋๊ธฐ ๋๋ฌธ์ ์ปดํ์ผ ๋์ง ์์
static ๋ถ์ด๋ฉด ์ฌ์ฉ๊ฐ๋ฅ!
public class Ex {
public static void test() {
System.out.println("์ถ๋ ฅ๋ ๊น?");
}
public static void main() {
test(); // ์ถ๋ ฅ๋ ๊น? ์ถ๋ ฅ๋จ
}
}
static ํด๋์ค ํ์ฉ ์ )
public class Ex {
static int sNum = 10;
int iNum = 20;
public static void main(String[] args) {
// iNum; // => X ์คํํฑ ๋ฉ์๋ ๋ด์์๋ ์ธ์คํด์ค ๋ณ์๋ฅผ ์ฌ์ฉX
Person p = new Person();
Person p2 = new Person();
// p.num = 10; // => X
Person.num = 10;
System.out.println(Person.num); // 10
}
}
class Person {
String name; // ๊ฐ์ฒด(์ธ์คํด์ค)๋ง๋ค ๊ฐ์ง ์ ์์
static int num; // ํด๋์ค
public static void method() {}
}
static ๋ฉค๋ฒ๋ ํ๋ก๊ทธ๋จ ์คํ๊ณผ ๋์์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ๊ธฐ ๋๋ฌธ์ static ๋ฉ์๋ ์์ ์ธ์คํด์ค ๋ณ์ ์ฌ์ฉํ ์ ์๋ค.
์ธ์คํด์ค ๋ณ์๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ๊ฐ์ฒด๋ฅผ ์์ฑํด์ผ๋ง ์ฌ์ฉ ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ธฐ์ ์ ๋จผ์ ์ฌ๋ฆฌ๋ static ๋ฉค๋ฒ ์์์๋ ์ฌ์ฉํ ์ ์๋ ๊ฒ!
๋ฐ๋ผ์, static ํค์๋๋ฅผ ๋ถ์ด๋ฉด ๊ฐ์ฒด ์์ฑ ์์ด ๋ฉ์๋๋ ๋ณ์๋ฅผ ์ฌ์ฉ ๊ฐ๋ฅ!
static์ ์ ์ฌ์ฉํ ๊น?
static ํค์๋๊ฐ ๋ถ์ง ์๋ ๋ณ์๋ ๋ฉ์๋์ ๊ฒฝ์ฐ ๊ฐ์ฒด๊ฐ ์์ฑ๋ ๋๋ง๋ค ํธ์ถ๋๊ธฐ ๋๋ฌธ์ ์๋ก ๋ค๋ฅธ ์ฃผ์ ๊ฐ์ ๊ฐ์ง๊ณ ์๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๊ฐ ๊ฐ์ฒด๋ค์์ ๊ณตํต์ ์ผ๋ก ๊ด๋ฆฌํด์ผํ๋ ๊ฒฝ์ฐ๋ static ํค์๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ ์ฉํ๋ค!
๊ณผ๋ํ๊ฒ ๋ง์ static์ ์ ์ธํ ๊ฒฝ์ฐ ๋ฉ๋ชจ๋ฆฌ ๊ณผ๋ถํ๊ฐ ๋ฐ์ ํ ์ ์๋ค.
'๋ฐฑ์๋(Back-End) ๊ฐ๋ฐ > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก์ธ์ค(Process) vs ์ค๋ ๋(Thread) ๋? (0) | 2025.01.19 |
---|---|
์ต๋ช ํด๋์ค(์ต๋ช ๊ฐ์ฒด) ๋? (0) | 2025.01.19 |
๊ธฐ๋ณธํ ๋ณ์ vs ์ฐธ์กฐํ ๋ณ์ (0) | 2025.01.19 |
JAVA๋? ์๋ฐ์ ๊ตฌ๋ ์๋ฆฌ (JVM์ ํน์ง) (1) | 2025.01.19 |
์ฟ ํค(Cookie) vs ์ธ์ (Session) (0) | 2025.01.19 |