카테고리 없음
class 변수/class 메소드 (= static 변수, static 메소드, 정적변수, 정적 메소드)
kakk789
2022. 4. 5. 21:57
class 변수, class 메소드
- static 변수, static 메소드 = 정적변수, 정적 메소드라고도 부름
class 변수
- 멤버변수 앞에 static 키워드가 붙어있는 변수를 말하며 객체 생성을 하지 않고 사용할 수 있음.
class 메소드
- 메소드명 앞에 static 키워드가 붙어있는 메소드를 말하며 객체 생성을 하지 않고 사용할 수 있음
모두 클래스 이름으로 접근 가능하다.
클래스명.속성
class Person{
static String addr; //
}
public class PersonTest {
public static void main(String[] args) {
Person.addr="dd";
}
}
- static 메소드 안에서 다른 변수나 메소드를 호출 할때 static이 붙어있지 않는 변수나 메소드는 호출 불가능
- 왜냐하면, static은 컴파일 시점에 정의가 되는건데 당연히 일반 변수/메소드는 정의가 나중에 되기 때문임
- 쉽게 설명하자면, static 메소드 안에서는 static만 호출 가능하다 라고 이해할 것
메모리 할당 영역 설명
* Method 영역 = Code 영역 (static) / Stack 영역 = 객체가 갖는 변수들의 주소 / Heap 영역 = 객체의 변수
* 스택의 객체명은 힙의 객체의 변수들의 주소를 갖음. (만일 해당 객체의 변수가 3개면 3개가 세트로 한 주소에 할당되어 짐)

반응형