블로그 이미지
'무른모'란 부드럽다라는 뜻을 가진 '무르다'라는 말과 도구, 연장을 뜻하는 '연모'라는 순 우리말의 합성어로 소프트웨어를 말합니다. seanhigher

카테고리

분류 전체보기 (161)
Blog srart (16)
Dev Center (94)
Real Life (13)
Mac life (21)
Naver life (17)
Total659,142
Today25
Yesterday31

'정적 필드'에 해당되는 글 1건

  1. 2010.08.07 정적 필드, 정적 메소드.
클래스를 사용하기 위해서는 객체화 시켜 이용을 하게 된다. 하지만 한가지가 아쉽다. 모든 객체에 상관없이 사용할 수 는 없는 것일까 하는 것. 만일 비디오를 대여하는 프로그램을 만들고자 할때, 아무리 많은 비디오 객체를 만들어도 그비디오의 재고는 객체와 상관없이 유지되어야 한다.



객체가 아닌 클래스에 소속된 것들.
클래스의 변수를 사용하기 위해서는 객체를 생성해야 하고, 그 객체를 가지고 각 맴버 변수들과 메소드에 접근을 하는 것이 가능하다. 같은 클래스의 변수들과 메소드일찌라도, 생성된 객체가 다르다면 전혀 다른존재가 되는 것이다. 서로간에 인자값으로 전달해주지 않는다면 서로 다른 객체간에 데이터값을 유지시킬 수 없게 된다. 하지만, 한가지 방법이 있다. 바로 정적 필드, 정적 메소드를 선언하는 것이다. 이렇게 정적으로 선언하게 되면, 이것들은 객체에 소속되는 것이 아니라, 그것이 선언된 클래스에 소속이 되는것이다. 객체로부터의 접근이 아닌, 클래스로부터 접근이 가능하게 된다.


정적 필드, 정적 메소드의 선언.
정적 필드, 정적 메소드를 선언하기 위해서는 필드와 메소드 앞에 static을 선언해주면 된다.
class A {
    static int a = 0;
    static void display() {
    }
}

위에서 선언된 a변수에 접근을 하기 위해서는 클래스의 이름인 A로 접근을 해야 한다. 객체를 생성하지 않은 상태에서 클래스의 멤버변수를 사용하는 것이 가능하다. a의 변수를 사용하기 위해서는 A.a라는 방식으로 사용할 수 있다. 동일하게 메소드에서도 A.display() 라는 이름으로 객체를 생성하지 않은체로 사용하는 것이 가능하다.


정적필드를 사용하면 좋은점과, 그렇지 않은 점.
이렇게 정적 필드를 사용하게 되면, 하나의 클래스에서 같은 데이터형에 접근을 하는 것이 가능하다. 변수를 사용하기 위해서 객체를 생성하지 않아도 되기 때문에 좀더 손쉽게 사용하는 것이 가능하다. 하지만, 이렇게 정적으로 선언한 필드의 경우에는 프로그램의 실행하면서 최초로 호출됨과 동시에 일부의 메모리를 할당받기 때문에 너무 남용하는 것은 좋지 않다. 그렇기 때문에 정적 필드를 사용하는 경우는, 그 클래스객체와 상관없이 모두에 동일한 값을 갖고자 할때, 상수를 변수처럼 사용하고자 할때 사용되게 된다.

Posted by seanhigher

댓글을 달아 주세요

최근에 달린 댓글

글 보관함