public static Coffee getCoffee(String type, int price) {
if ("Latte".equalsIgnoreCase(type)) return new Latte(price);
위의 코드에서는 static 메서드를 사용하여 객체 생성 없이도 호출할 수 있는 팩토리 메서드를 제공하기 위해 new 연산자 대신에 Latte 객체를 반환한다.
static 메서드는 클래스 레벨에서 호출되며, 특정 객체의 인스턴스에 종속되지 않는다. 따라서 static 메서드 내에서는 인스턴스 변수나 인스턴스 메서드에 직접적으로 접근할 수 없다.
위의 코드에서 getCoffee 메서드는 type 매개변수를 기반으로 Latte 객체를 생성하여 반환하는 단순한 팩토리 메서드이다. 이 메서드는 Coffee 클래스의 인스턴스를 생성하지 않고도 호출할 수 있어야 한다. 따라서 static 키워드를 사용하여 getCoffee 메서드를 정적 메서드로 선언하였다.