class ex01{
int a, b; // 인스턴스 변수
void sum(){ // 인스턴스 메서드
return a + b; // 인스턴스 변수 사용
}
static void sum(int a, int b){ // 클래스 메서드
return a + b; // 지역변수 a, b 사용 (매개변수)
}
}
class card{
string kind; // 무늬
string number; // 번호
static int width = 150; // 폭
static int height = 250; // 높이
}
카드 객체를 보면 무늬
와 번호
는 각 객체별로 다른 속성을 가진다
그러나 폭
과높이
는 공통적인 크기를 가지기에 static으로 정의한다
클래스 변수는 인스턴스를 생성하지 않아도 사용할 수 있다
(클래스 변수는 클래스가 메모리에 올라갈 때 이미 자동적으로 생성)
class Hi{
static void hello(int a, int b){ // 인스턴스 변수가 아닌 지역변수 사용
return a + b;
}
}
- static은 인스턴스 변수를 사용하지 않을 때, 모든 인스턴스에 공통으로
사용하는 변수가 있을 때 사용한다- 클래스 메서드는 인스턴스 변수를 사용할 수 없다
- 인스턴스 메서드는 객체를 생성해야 쓸 수 있다
복습 전에는 static의 개념을 정확히 몰랐는데 복습하며 정확히 이해할 수 있었다
모두들 단순히 코드가 실행이 되는지보다 정확히 어떻게 동작하는지 이해하길 바란다