- static 키워드의 여부에 따라 다음과 같이 구분된다.
- 클래스 메서드(static method)
- 인스턴스 메서드(instance method)
클래스 메서드(static method)
- 클래스 변수와 마찬가지로 인스턴스를 생성하지 않고도 바로 사용할 수 있다.
- 매서드 내부에서 인스턴스 변수를 사용할 수 없다.
- 클래스명.메서드명(); 으로 호출
인스턴스 메서드(instance method)
- 반드시 객체를 생성 후 참조변수.메서드명(); 으로 호출
// 회원가입에서 각각의 이메일과 가입자수(공통적인 부분)를 같이 관리해보자
class SignUp {
// 클래스 변수(가입자 수)
static int count = 0;
// 인스턴스 변수
String email;
String password;
// 생성자
SignUp(String email, String password) {
this.email = email;
this.password = password;
count++;
}
// email을 출력하는 인스턴스 메서드
void getEmail() {
System.out.println(email);
}
// count를 출력하는 클래스 메서드
static void getCount() {
System.out.println(count);
}
}
public class Main {
public static void main(String[] args) {
SignUp user1 = new SignUp("a@mail", "pw1");
SignUp user2 = new SignUp("b@mail", "pw2");
// 인스턴스 메서드 호출
user1.getEmail(); // a@mail
user2.getEmail(); // b@mail
//클래스 메서드 호출
SignUp.getCount(); // 2
}
}