์ฌ์ฉ์ ํ์(Usage Level modifier)
Static
- static๋ณ์๋ ๊ฐ์ฒด๊ฐ ๊ฐ์ ๊ณต์ ๋ฅผ ์๋ฏธ
- static๋ฉค๋ฒ๋ ๊ฐ์ฒด ์์ฑ ์์ด ํด๋์ค๋ช .์ด๋ฆ ์ผ๋ก ์ฐธ์กฐ ๊ฐ๋ฅ
- static๋ฉ์๋๋ ๊ฐ์ static๋ฉค๋ฒ๋ง ์ฐธ์กฐ๊ฐ๋ฅ.
1.์ ์ ์ ํ์ ํน์ง
- static์ ํ์๋ ๋ณ์, ๋ฉ์๋์ ์ ์ฉ๋๋ ์๋ฐ์ ํค์๋
- static๋ฉ์๋๋ ๋ณ์๋ ํด๋น ํด๋์ค ๊ฐ์ฒด ์์ด๋ ์ฐธ์กฐ๊ฐ๋ฅ.
- static๋ธ๋ก(Static ๋ฉ์๋, ์ ์ ์ด๊ธฐํ) ์์๋ static๋ณ์๋ง ์ฌ์ฉํด์ผํ๊ณ , static๋ฉ์๋๋ง ํธ์ถ๊ฐ๋ฅ.
- static์ ํ์๋ ์ง์ ๋ ๋ณ์์ ๋ฉ์๋๋ฅผ ๊ฐ์ฒด์ ๋ฌด๊ดํ๊ฒ ๋ง๋ค์ด์ฃผ์ด this๋ฅผ ๊ฐ์ง ์ ์์.
- static๋ฉ์๋๋ non-static๋ฉ์๋๋ก ์ฌ์ ์(Overriding) ๋ ์ ์์.
- ๋ํ์ ์ธ static๋ฉ์๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์ main()๋ฉ์๋์.
2. ์ ์ ๋ฉ์๋(Static method)
- static๋ฉ์๋๋ static๋ณ์์ ๋ง์ฐฌ๊ฐ์ง๋ก ํด๋น ํด๋์ค์ ๊ฐ์ฒด ์์ฑ ์์ด๋ ์ฐธ์กฐ ๊ฐ๋ฅํ๊ฒ ํด์ค.
- static๋ฉ์๋์์ ๋ฉค๋ฒ ์ฐธ์กฐํ ๋ ์ฃผ์์ฌํญ "static๋ฉ์๋ ์์์ non-static๋ฉค๋ฒ๋ฅผ ๊ฐ์ฒด ์์ฑ์์ด ์ง์ ์ฐธ์กฐํ ์ ์์"
โถ์ผ๋ฐ๋ฉค๋ฒ๋ณ์ & static ๋ฉค๋ฒ๋ณ์ ์ ์ธ
public class Count{
public int a; // ์ผ๋ฐ๋ณ์ ์ ์ธ
public static int b; // static๋ฉค๋ฒ ๋ณ์
//static์ด ๋ถ์ผ๋ฉด ๊ฐ์ฒด ์ฌ์ด ๋์ผํ๊ฐ ๊ฐ์.
}
public class MainClass{
public static void main(String[] args){ //๋ํ์ ์ธ static๋ฉ์๋
Count c1 = new Count(); //์ฒซ๋ฒ์งธ c1 ๋ฉ์๋ ์์ฑ
c1.a++;
c1.b++;
System.out.println("c1์ a:" + c1.a);
System.out.println("c1์ b:" + c1.b); //c1.a & c1.b ๋ชจ๋ 1์ถ๋ ฅ
Count c2 = new Count(); //๋๋ฒ์งธ c2 ๋ฉ์๋ ์์ฑ
c2.a++;
c2.b++;
System.out.println("c2์ a:" + c2.a); // 1
System.out.println("c2์ b:" + c2.b); // 2
//b๋ static๋ณ์์ด๊ธฐ ๋๋ฌธ์
//์๋ก์ด ๋ฉ์๋์ b์ฌ๋ ๊ฐ์ด ์ด๊ธฐํ ๋์ง์๊ณ ์ด์ ์ ๊ฐ์๊ฐ์ง๊ณ ์์.
//๋ฐ๋ผ์ c1.b์ b๊ฐ 1์ ๊ฐ์ ๊ฐ์ง๊ณ ์์๊ธฐ ๋๋ฌธ์ c2.b++์ 2๊ฐ๋จ.
}
}
โถ ์ผ๋ฐ๋ฉ์๋ & static๋ฉ์๋ ์ ์ธ
โถ staticํ์ฉ
'FOR SW ENGINEER๐ฉโ๐ป > JAVA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
JAVA_์ธํฐํ์ด์ค(Interface) (0) | 2021.09.14 |
---|---|
JAVA_์ถ์ํ(Abstract) (0) | 2021.09.13 |
JAVA _๋คํ์ฑ(Polymorphism) (0) | 2021.09.09 |
๊ตญ๋นJAVA์์ DAY-13 (0) | 2021.09.02 |
๊ตญ๋นJAVA์์ DAY-12 (0) | 2021.09.01 |