의견.png

소유제어자

위키원
greenwood26 (토론 | 기여)님의 2020년 8월 20일 (목) 09:43 판 (목적 varet, , >, 2014-03-25)
이동: 둘러보기, 검색

소유제어자(static)란 메모리에 오직 1개만 생성되고 해당 클래스의 모든 객체에서 공유되어지게 하는 제어자를 말한다. [1]소유제어자가 붙으면 클래스의 소유, 붙지 않는다면 객체의 소유가 된다.[2]

특징[2]

  1. 클래스(Class)와 생성자(Constructor) 앞에는 붙지 못하고 멤버변수(Member Variable)와 메소드(Method)앞에만 붙을 수 있다.
  2. static 메소드 내에서는 객체 생성 없이 static 자원을 호출 가능하다. 해당 자원에 클래스 이름이 생략이 된다.
  3. 지역 변수(Local Variable)에는 static이 붙을 수 없다.
  4. 다른 클래스에서 static 자원을 호출할 때에는 클래스 이름을 생략할 수 없다.
  5. static 자원은 메모리에 오직 1개 생성이 된다. 해당 클래스의 모든 객체에서 공유 되어진다.
  6. static 메소드에서는 this와 super을 사용할 수 없다.

목적 [3]

  • 클래스를 설계할 때, 멤버 변수 중 모든 인스턴스에 공통적으로 사용해야하는 것에 static을 붙인다.

인스턴스를 생성하면, 각 인스턴스들은 서로 독립적이기 때문에 서로 다른 값을 유지한다. 경우에 따라서는 각 인스턴스들이 공통적으로 같은 값이 유지되어야 하는 경우 static을 붙인다. 대표적으로 싱글톤패턴이 있다.

각주

  1. 영찰리, <자바(JAVA) 제한자>, <<개인 블로그>>, 2016-07-18
  2. 2.0 2.1 시빅, <자바 ② 소유 제한자 ( static )>, <<개인 블로그>>, 2018-02-14
  3. varet, <Static 키워드 바로 알고 사용하자>, <<개인 블로그>>, 2014-03-25

참고자료


  의견.png 이 소유제어자 문서는 프로그래밍에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.