# 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 ์˜ˆ์•ฝ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์ „์— ๋ฏธ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ ค๋†” ๊ณ ์ •์‹œํ‚จ๋‹ค.

์ด๋ ‡๊ฒŒ ๋˜๋ฉด ๋ฌด์Šจ ํŠน์ง•์ด ์žˆ์„๊นŒ? ์•„๋ž˜์™€ ๊ฐ™์€ ํŠน์ง•์ด ์žˆ๋‹ค.

  1. ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•œ ํ›„ ์ด์šฉ๊ฐ€๋Šฅ ํ•˜๋˜ ๋ณ€์ˆ˜๊ฐ€ static ์˜ˆ์•ฝ์–ด๋ฅผ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ, ๋ฏธ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ, ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ์—†์ด ๋ฐ”๋กœ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋‹ค.
  StaticTest.a; 

  StaticTest.add();  

<ํด๋ž˜์Šค.๋ณ€์ˆ˜ or ๋ฉ”์„œ๋“œ>

  1. StaticTest ์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๋ช‡๊ฐœ๋ฅผ ์ƒ์„ฑํ•˜๋“  a์˜ ๋ณ€์ˆ˜๋Š” ์ด๋ฏธ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ,

์ธ์Šคํ„ด์Šค ๋งˆ๋‹ค ๋ณ€์ˆ˜ a๊ฐ€ ์ƒ๊ธฐ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋ฉ”๋ชจ๋ฆฌ์— ๋ฏธ๋ฆฌ ์˜ฌ๋ผ๊ฐ€ ์žˆ๋˜ ๋ณ€์ˆ˜ a๋ฅผ ๊ณต์œ ํ•œ๋‹ค.

๋”ฐ๋ผ์„œ static ์˜ˆ์•ฝ์–ด๋ฅผ ์‚ฌ์šฉํ•œ ๋ณ€์ˆ˜๋Š” ๊ณต์œ ๋ณ€์ˆ˜ ๋ผ๊ณ ๋„ ๋ถˆ๋ฆฐ๋‹ค.

๋ณ€์ˆ˜a๋ฅผ ๊ณต์œ ํ•˜๋ฏ€๋กœ ๋ณ€์ˆ˜aํฌ๊ธฐ ๋งŒํผ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์•„๋‚„ ์ˆ˜ ๋„ ์žˆ๋‹ค.

๋ฉ”์„œ๋“œ๋„ ๋˜‘๊ฐ™์ด ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.

  1. ๋งŒ์•ฝ ๋ณ€์ˆ˜b๋ฅผ static ๋ฉ”์„œ๋“œ add์•ˆ์—๋‹ค๊ฐ€ ์‚ฌ์šฉํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

์ด์œ ๋Š” int b๋Š” StaticTest์˜ ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋˜์–ด์•ผ ์“ธ์ˆ˜ ์žˆ๋Š” ๋ฉค๋ฒ„๋ณ€์ˆ˜์ง€๋งŒ,

static public void add()๋Š” ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ๊ธฐ๊ธธ ๊ธฐ๋‹ค๋ ค์ฃผ์ง€ ์•Š๊ณ  ๋ฐ”๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ€๊ธฐ ๋•Œ๋ฌธ์—

StaticTest์•ˆ์— ์ผ๋ฐ˜ ๋ฉค๋ฒ„๋ณ€์ˆ˜ b๋Š” ์“ฐ์ง€ ๋ชปํ•œ๋‹ค.

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฐœ๋…์œผ๋กœ์„œ์˜ static์€ ๊ณ ์ •ํ•˜๋‹ค, ์ •์ ์ด๋‹ค. ๋ผ๋Š” ๋œป์ด๋ฏ€๋กœ

์ž๋ฐ” ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ static ๊ฐœ๋…์ด ๋‚˜์˜ค๋Š” ๋ชจ๋“  ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์œ— ๊ฐœ๋…์œผ๋กœ ์ดํ•ดํ•˜๋ฉด ์ข‹์„ ๊ฒƒ ์ด๋‹ค.

# Reference

https://mommoo.tistory.com/24?category=577684 [๊ฐœ๋ฐœ์ž๋กœ ํ™€๋กœ ์„œ๊ธฐ]

Last Updated: 6/18/2023, 2:13:15 PM