일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 프로그래밍
- 빅데이터
- 딥러닝
- 컴퓨터비전
- 컴퓨터공학
- 인공지능
- 데이터구조
- 자료구조
- 컴퓨터과학
- Yes
- 보안
- 버전관리
- 소프트웨어
- 파이썬
- 프로그래밍언어
- 코딩
- 머신러닝
- 2
- 알고리즘
- 데이터과학
- 데이터분석
- 데이터베이스
- 웹개발
- 네트워크
- 자바스크립트
- 네트워크보안
- 클라우드컴퓨팅
- 사이버보안
- 소프트웨어공학
- I'm Sorry
- Today
- Total
스택큐힙리스트
Java는 기본 매개변수 값을 지원합니까? 본문
내가 만난 몇 가지 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가 세 번 출력됩니다.
매개변수의 기본값은 함수 선언의 마지막 매개변수부터 지정할 수 있습니다. 또한 메소드 오버로드와 같은 일부 상황에서는 사용할 수 없습니다.
결론적으로, 자바는 매개변수의 기본 값을 지원합니다. 이를 사용하면 불필요한 코드 작성을 피하고 작업을 더 쉽게 수행할 수 있습니다.