스택큐힙리스트

Java는 기본 매개변수 값을 지원합니까? 본문

카테고리 없음

Java는 기본 매개변수 값을 지원합니까?

스택큐힙리스트 2023. 3. 27. 03:32
반응형

내가 만난 몇 가지 Java 코드는 다음 구조를 가지고 있었습니다.

public MyParameterizedFunction(String param1, int param2)

{

this(param1, param2, false);

}

public MyParameterizedFunction(String param1, int param2, boolean param3)

{

//use all three parameters here

}

C++에서는 매개 변수에 기본값을 할당할 수 있다는 것을 알고 있습니다. 예를 들어:

void MyParameterizedFunction(String param1, int param2, bool param3=false);

이러한 구문을 Java가 지원합니까? 이 두 단계 구문이 선호되는 이유가 있습니까?

답변 1

아니요, 당신이 찾은 구조는 자바가 처리하는 방식입니다 (즉, 기본 매개 변수 대신 오버로딩을 사용하는 방식입니다).

건축가를 위한 See Effective Java: Programming Language Guide's 아이템 1 팁 (생성자 대신 정적 공장 메서드를 고려해보세요)

오버로딩이 복잡해지면, 다른 방법으로는 몇 가지 경우를 이름을 변경하거나 매개 변수 개체를 사용해 보조할 수 있습니다.

다른 것을 구별하는 것이 어려운 복잡성이 충분한 경우입니다. 결정적인 경우는 숫자와 유형뿐만 아니라 매개변수의 순서를 사용하여 구별해야하는 경우입니다.

답변 2

자바는 기본 매개변수 값을 지원할까요?

자바는 1.5 버전부터 변수 및 매개변수의 기본 값을 지원합니다. 이 기능을 사용하면 함수의 매개변수가 지정되지 않은 경우 이를 기본값으로 지정할 수 있습니다. 이는 프로그래밍에서 코드 작성을 더 쉽고 간단하게 만들어줍니다.

예를 들어, 다음과 같은 코드를 작성하면 됩니다.

```

public void printMessage(String message, int count = 1) {

for (int i = 0; i < count; i++) {

System.out.println(message);

}

}

```

이것은 count 매개변수를 생략하고 1로 기본 값을 설정하는 것입니다. 따라서 다음과 같이 printMessage를 호출할 수 있습니다.

```

printMessage(Hello);

```

그러면 Hello가 한 번 출력됩니다. 또한 count 매개변수를 수정하려면 다음과 같이 호출할 수 있습니다.

```

printMessage(Hello, 3);

```

그러면 Hello가 세 번 출력됩니다.

매개변수의 기본값은 함수 선언의 마지막 매개변수부터 지정할 수 있습니다. 또한 메소드 오버로드와 같은 일부 상황에서는 사용할 수 없습니다.

결론적으로, 자바는 매개변수의 기본 값을 지원합니다. 이를 사용하면 불필요한 코드 작성을 피하고 작업을 더 쉽게 수행할 수 있습니다.

반응형
Comments