의견.png

"소유제어자"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
(목적 varet, , >, 2014-03-25)
1번째 줄: 1번째 줄:
'''소유제어자'''(static)란 메모리에 오직 1개만 생성되고 해당 클래스의 모든 객체에서 공유되어지게 하는 제어자를 말한다. <ref name = 'static00'> 영찰리, <[https://youngcharlie.tistory.com/8 자바(JAVA) 제한자]>, <<개인 블로그>>, 2016-07-18 </ref>소유제어자가 붙으면 클래스의 소유, 붙지 않는다면 객체의 소유가 된다.<ref name = 'static01></ref>
+
'''소유제어자'''(static)란 메모리에 오직 1개만 생성되고 해당 클래스의 모든 객체에서 공유되어지게 하는 제어자를 말한다. <ref name = 'static00'> 영찰리, <[https://youngcharlie.tistory.com/8 자바(JAVA) 제한자]>, <<개인 블로그>>, 2016-07-18 </ref>
 
+
== 개요 ==
 +
소유제어자가 붙으면 클래스의 소유, 붙지 않는다면 객체의 소유가 된다.<ref name = 'static01></ref>
 
== 특징<ref name = 'static01'>시빅, <[https://seokho-j0308.tistory.com/28 자바 ② 소유 제한자 ( static )]>, <<개인 블로그>>, 2018-02-14 </ref>==
 
== 특징<ref name = 'static01'>시빅, <[https://seokho-j0308.tistory.com/28 자바 ② 소유 제한자 ( static )]>, <<개인 블로그>>, 2018-02-14 </ref>==
 
# [[클래스]](Class)와 [[생성자]](Constructor) 앞에는 붙지 못하고 멤버변수(Member Variable)와 메소드(Method)앞에만 붙을 수 있다.
 
# [[클래스]](Class)와 [[생성자]](Constructor) 앞에는 붙지 못하고 멤버변수(Member Variable)와 메소드(Method)앞에만 붙을 수 있다.
8번째 줄: 9번째 줄:
 
# static 자원은 메모리에 오직 1개 생성이 된다. 해당 클래스의 모든 객체에서 공유 되어진다.
 
# static 자원은 메모리에 오직 1개 생성이 된다. 해당 클래스의 모든 객체에서 공유 되어진다.
 
# static 메소드에서는 this와 super을 사용할 수 없다.
 
# static 메소드에서는 this와 super을 사용할 수 없다.
 
== 목적 <ref name = 'staic03'> varet, <[https://vaert.tistory.com/101 Static 키워드 바로 알고 사용하자]>, <<개인 블로그>>, 2014-03-25 </ref> ==
 
=== 모든 인스턴스에 공통적용 ===
 
[[클래스]]를 설계할 때, 멤버 변수 중 모든 인스턴스에 공통적으로 사용해야하는 것에 static을 붙인다.인스턴스를 생성하면, 각 인스턴스들은 서로 독립적이기 때문에 서로 다른 값을 유지한다. 경우에 따라서는 각 인스턴스들이 공통적으로 같은 값이 유지되어야 하는 경우 static을 붙인다. 대표적으로 [[싱글톤패턴]]이 있다.
 
 
=== 인스턴스 생성 불필요 ===
 
static이 붙은 [[멤버변수]](Member Variable)는 생성하지 않아도 사용할 수 있다. 클래스가 메모리에 올라갈 때 이미 자동적으로 생성되기 때문이다.
 
  
 
{{각주}}
 
{{각주}}
21번째 줄: 15번째 줄:
 
* CIVIC, 〈[https://seokho-j0308.tistory.com/28 자바 ② 소유 제한자 ( static )]〉, 《시빅의 IT공부 블로그》, 2018-02-14
 
* CIVIC, 〈[https://seokho-j0308.tistory.com/28 자바 ② 소유 제한자 ( static )]〉, 《시빅의 IT공부 블로그》, 2018-02-14
 
* 영찰리, <[https://youngcharlie.tistory.com/8 자바(JAVA) 제한자]>, <<개인 블로그>>, 2016-07-18
 
* 영찰리, <[https://youngcharlie.tistory.com/8 자바(JAVA) 제한자]>, <<개인 블로그>>, 2016-07-18
*  varet, <[https://vaert.tistory.com/101 Static 키워드 바로 알고 사용하자]>, <<개인 블로그>>, 2014-03-25
 
  
 
{{프로그래밍|토막글}}
 
{{프로그래밍|토막글}}

2020년 8월 20일 (목) 09:48 판

소유제어자(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을 사용할 수 없다.

각주

  1. 영찰리, <자바(JAVA) 제한자>, <<개인 블로그>>, 2016-07-18
  2. 2.0 2.1 시빅, <자바 ② 소유 제한자 ( static )>, <<개인 블로그>>, 2018-02-14

참고자료


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