C# 뿐만 아니라 자바에서도 static 이라는 키워드가 있다.
static 의 사전적 의미는 '정적인' 이라는 의미이다.
'정적인' 이라는 의미가 도대체 뭐야!
'가만이 있는'...뭐 이런 뜻인데 말이야.
반대말로는 '동적인'이라는 의미의 dynamic 인 것 같은데...
static 이라는 말을 가장 처음, 많이 사용했을 때가...
디아블로2를 할 때 소서리스의 스킬중 스태틱 필드 static field가 있었다.
몬스터의 피를 25% 깍는 기술이다. 초반에는 소서리스 뿐만 아니라 다른 캐릭의 공격 데미지가 매우 낮다. 그래서 도망다니고, 포션을 빨아가며 엄청 때려야 몹이 죽는데, 소서리스의 스태틱 필드를 사용하면 초반에도 몹의 피가 쭉쭉 다는게 눈에 보인다. 또 범위 공격이라 스킬을 1만 올린 다음에 몬스터들을 한곳에 몰아놓고 적당히 스태틱 필드를 사용하면 한방에 여러 몬스터에게 엄청난 데미지를 줄수 있다. 단점으로는 스태틱 필드로 몹을 죽일 수는 없다. 왜냐하면 몹의 피의 25%를 데미지로 준다. 즉 피가 1이 남았어도 스태틱 필드로는 절대 몹을 죽일 수 없다.
...잡설이 길었다. 아무튼 static이라는 의미는
고정적인 퍼센트로 데미지를 준다!
(사전찾아보니 static electricity가 정전기라는 뜻이군, 단순히 '고정적인 퍼센트의 데미지'의 의미가 아닐 수도 있다. 문맥상 중요한것이 아니므로 패쓰!)
고정적인 퍼센트로 데미지를 준다!
(사전찾아보니 static electricity가 정전기라는 뜻이군, 단순히 '고정적인 퍼센트의 데미지'의 의미가 아닐 수도 있다. 문맥상 중요한것이 아니므로 패쓰!)
클래스 안에서 변수를 선언할 때 나온다.
'변수를 static으로, 즉, 정적으로 선언하겠다' 라는 의미인데.. 말은 되지만 무슨 뜻인지 모르겠다.
......
'동적인' 과 '정적인'에 대한 설명!
프로그래밍 언어에서 '정적' 혹은 '동적'이라는 말은 메모리에 대해 붙이는 경우가 많다. 동적으로 메모리를 어떻게 하겠다, 혹은 정적으로 메모리를 다루겠다. 뭐 이런 뜻이다.
즉, 'static' 이라는 말은 정적으로 메모리를 할당하겠다. 라는 뜻인데,
메모리를 동적으로 할당하겠다는 것은 메모리를 필요로 하는 경우가 생길 때 메모리를 그때그때 새로 할당해서 그 대상이 없어지면 할당된 메모리도 사라지고, 새로 생기면 메모리를 새로 할당하겠다는 뜻이다.
정적으로 메모리를 할당하겠다는 의미는 할당된 특정 메모리 공간을 계속 사용하는 것이다. 움직이지 않고, 즉 정적으로, 새로 뭘 만들고 지우고 하지 않고, 있는 그대로를 그냥 사용하고, 또 사용해야 되면 사용하던걸 그냥 그대로 사용하고. 이런 식이다.
...
객체를 선언할 때 static이라는 키워드를 주게 되면, 나중에 그 객체를 사용하기 위해 인스턴스를 생성할 때 new 키워드를 써서 새로 메모리를 할당하지 않고 바로 써도 된다는 의미이다.
만약 static 키워드가 없다면 객체의 인스턴스를 만들어야 한다. 인스턴스란 고정된 틀(객체)에서 찍어낸 내용물(같은 모양의 다른 것들)이다.
......
'동적인' 과 '정적인'에 대한 설명!
프로그래밍 언어에서 '정적' 혹은 '동적'이라는 말은 메모리에 대해 붙이는 경우가 많다. 동적으로 메모리를 어떻게 하겠다, 혹은 정적으로 메모리를 다루겠다. 뭐 이런 뜻이다.
즉, 'static' 이라는 말은 정적으로 메모리를 할당하겠다. 라는 뜻인데,
메모리를 동적으로 할당하겠다는 것은 메모리를 필요로 하는 경우가 생길 때 메모리를 그때그때 새로 할당해서 그 대상이 없어지면 할당된 메모리도 사라지고, 새로 생기면 메모리를 새로 할당하겠다는 뜻이다.
정적으로 메모리를 할당하겠다는 의미는 할당된 특정 메모리 공간을 계속 사용하는 것이다. 움직이지 않고, 즉 정적으로, 새로 뭘 만들고 지우고 하지 않고, 있는 그대로를 그냥 사용하고, 또 사용해야 되면 사용하던걸 그냥 그대로 사용하고. 이런 식이다.
...
객체를 선언할 때 static이라는 키워드를 주게 되면, 나중에 그 객체를 사용하기 위해 인스턴스를 생성할 때 new 키워드를 써서 새로 메모리를 할당하지 않고 바로 써도 된다는 의미이다.
만약 static 키워드가 없다면 객체의 인스턴스를 만들어야 한다. 인스턴스란 고정된 틀(객체)에서 찍어낸 내용물(같은 모양의 다른 것들)이다.
댓글 없음:
댓글 쓰기