2009-08-01 3 views

답변

3

편리한 방법은 이름에서 알 수 있듯이 단지 편의를 위해 존재하며 반드시 기능을 위해 존재하지는 않습니다.

편의 메서드가있는 일반적인 경우 중 하나는 여러 인수를 갖는 메서드에 대한 것이지만 일부 인수는 특정 방식으로 사용됩니다. 여러 번 같은 방법으로 다른 인수로 오버로드됩니다. 그것의 매개 변수 중 하나에 대한 기본 인수를 제공하기 때문에,의 myMethod(int) 방법은 myMethod(int, boolean)의 편리한 방법으로 생각 될 수있다 위의 예에서

public void myMethod(int value, boolean hasImportance) { 
    // do something. 
} 

public void myMethod(int value) { 
    myMethod(value, true); 
} 

:

다음 코드를 가져 가라.

PrintWriter.printf의 경우 기본적으로 PrintWriter.format을 호출하지만 format 메서드를 호출하는 대체 방법을 제공합니다. printf 메소드의 이름은 하나 하나가 그 의도를 전달하지 않는, 단지 format보다는 형식으로 출력하려고하고있는 의미를 전달하기 때문에

아마 편리한 방법과 printf 방법의 창조 뒤에 정당화이다 형식을 지정하여 출력을 수행하려고합니다.

+0

필자는 인쇄 기능과 관련이있는 모든 객체에 대해 printf()라는 메서드가 c 함수로 매개 변수화되어 있다는 사실에 착안했다고 말하고 싶습니다. 따라서 이전처럼 독점적 인 인쇄 메소드 이름을 기억할 필요가 없습니다. 단지 printf 만 사용하십시오. – Zed

1

this에 따르면, 그들은 같은 여기

/** 
    ... 
    * <p> An invocation of this method of the form <tt>out.printf(format, 
    * args)</tt> behaves in exactly the same way as the invocation 
    * 
    * <pre> 
    * out.format(format, args) </pre> 
    ... 
*/ 
public PrintWriter printf(String format, Object ... args) { 
    return format(format, args); 
} 
1

편의 두 가지 방법으로 해석 될 수 있습니다.

첫 번째 방법

개발자는 일반적으로 "의 printf"기능에 더 익숙해있다. 따라서 자주 사용됩니다.

번째 방법

어떤 변화는 printf (있는 버그 나 기능의 경우) 형식으로 제작 될 경우

,

하나 개의 기능은 이전의 기능을 유지하기 위해 사용될 수 있고, 다른 하나가 될 수

쉽게 수정할 수 있습니다.

관련 문제