"소유제어자"의 두 판 사이의 차이
greenwood26 (토론 | 기여) |
greenwood26 (토론 | 기여) (→목적 varet, , >, 2014-03-25) |
||
10번째 줄: | 10번째 줄: | ||
== 목적 <ref name = 'staic03'> varet, <[https://vaert.tistory.com/101 Static 키워드 바로 알고 사용하자]>, <<개인 블로그>>, 2014-03-25 </ref> == | == 목적 <ref name = 'staic03'> varet, <[https://vaert.tistory.com/101 Static 키워드 바로 알고 사용하자]>, <<개인 블로그>>, 2014-03-25 </ref> == | ||
− | # [[ | + | # [[클래스]]를 설계할 때, 멤버 변수 중 모든 인스턴스에 공통적으로 사용해야하는 것에 static을 붙인다. |
: 인스턴스를 생성하면, 각 인스턴스들은 서로 독립적이기 때문에 서로 다른 값을 유지한다. 경우에 따라서는 각 인스턴스들이 공통적으로 같은 값이 유지되어야 하는 경우 static을 붙인다. 대표적으로 [[싱글톤패턴]]이 있다. | : 인스턴스를 생성하면, 각 인스턴스들은 서로 독립적이기 때문에 서로 다른 값을 유지한다. 경우에 따라서는 각 인스턴스들이 공통적으로 같은 값이 유지되어야 하는 경우 static을 붙인다. 대표적으로 [[싱글톤패턴]]이 있다. | ||
2020년 8월 20일 (목) 09:43 판
소유제어자(static)란 메모리에 오직 1개만 생성되고 해당 클래스의 모든 객체에서 공유되어지게 하는 제어자를 말한다. [1]소유제어자가 붙으면 클래스의 소유, 붙지 않는다면 객체의 소유가 된다.[2]
특징[2]
- 클래스(Class)와 생성자(Constructor) 앞에는 붙지 못하고 멤버변수(Member Variable)와 메소드(Method)앞에만 붙을 수 있다.
- static 메소드 내에서는 객체 생성 없이 static 자원을 호출 가능하다. 해당 자원에 클래스 이름이 생략이 된다.
- 지역 변수(Local Variable)에는 static이 붙을 수 없다.
- 다른 클래스에서 static 자원을 호출할 때에는 클래스 이름을 생략할 수 없다.
- static 자원은 메모리에 오직 1개 생성이 된다. 해당 클래스의 모든 객체에서 공유 되어진다.
- static 메소드에서는 this와 super을 사용할 수 없다.
목적 [3]
- 클래스를 설계할 때, 멤버 변수 중 모든 인스턴스에 공통적으로 사용해야하는 것에 static을 붙인다.
- 인스턴스를 생성하면, 각 인스턴스들은 서로 독립적이기 때문에 서로 다른 값을 유지한다. 경우에 따라서는 각 인스턴스들이 공통적으로 같은 값이 유지되어야 하는 경우 static을 붙인다. 대표적으로 싱글톤패턴이 있다.
각주
- ↑ 영찰리, <자바(JAVA) 제한자>, <<개인 블로그>>, 2016-07-18
- ↑ 2.0 2.1 시빅, <자바 ② 소유 제한자 ( static )>, <<개인 블로그>>, 2018-02-14
- ↑ varet, <Static 키워드 바로 알고 사용하자>, <<개인 블로그>>, 2014-03-25
참고자료
- CIVIC, 〈자바 ② 소유 제한자 ( static )〉, 《시빅의 IT공부 블로그》, 2018-02-14
- 영찰리, <자바(JAVA) 제한자>, <<개인 블로그>>, 2016-07-18
- varet, <Static 키워드 바로 알고 사용하자>, <<개인 블로그>>, 2014-03-25