Java

[Java] 클래스 메서드와 인스턴스 메서드

junga 2022. 9. 7. 23:31
  • static 키워드의 여부에 따라 다음과 같이 구분된다.


  1. 클래스 메서드(static method)
  2. 인스턴스 메서드(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
    }
}

'Java' 카테고리의 다른 글

[Java] 접근 제어자  (0) 2022.09.08
[Java] JVM 구조  (0) 2022.09.08
[Java] this와 this()  (0) 2022.09.06
[Java] 클래스 필드의 구분  (0) 2022.09.06
[Java] 클래스 class  (0) 2022.09.06