메소드 블록에 인스턴스 필드 또는 인스턴스 메소드를 사용할 경우-> 인스턴스 메소드로 선언 그렇지 않을 경우-> 정적 메소드로 선언
public class Calculator {
String color; // 인스턴스 필드
void setColor(String color) { this.color = color; } // 인스턴스 메소드
static int plus(int x, int y) { return x + y; } // 정적 메소드
static int minus(int x, int y) { return x - y; } // 정적 메소드
}
전체 프로그램에서 단 하나의 객체만 만들도록 보장하는 코딩 기법
싱글톤 작성 방법
클래스 외부에서 new 연산자 통해 생성자 호출하는 것 불가하도록 private 접근 제한자 사용
자신의 타입인 정적 필드 선언 후 자신의 객체 생성해 초기화
외부에서 호출할 수 있는 getInstance() 선언
정적 필드에서 참조하는 자신의 객체 리턴
public class 클래스 {
//정적 필드
private static 클래스 singleton = new 클래스();
//생성자
private 클래스() {}
//정적 메소드
static 클래스 getInstance() {
return singleton;
}
}