풀스택 웹🌐 개발자 지망생 🧑🏽💻
➕ 인공지능 관심 🤖
Categories
-
┣
▶ COMPUTER_SCIENCE
📂: 7 -
┣
▶ WEB
📂: 3 -
┣
▶ ETC
📂: 3-
┃
┣
ETCS
📄: 10 -
┃
┣
SUBBRAIN 개발기
📄: 5 -
┃
┗
YOS 개발기
📄: 1
-
┃
┣
-
┗
▶ AI
📂: 9-
┣
AITOOLS
📄: 3 -
┣
CV
📄: 2 -
┣
DEEP_LEARNING
📄: 1 -
┣
DATA_VIS
📄: 2 -
┣
GRAPH
📄: 1 -
┣
LIGHTWEIGHT
📄: 1 -
┣
MATH
📄: 1 -
┣
NLP
📄: 3 -
┗
STRUCTURED_DATA
📄: 2
-
┣
JAVA 기본-메서드 매개변수와 오버로딩
메서드 매개변수와 오버로딩
메서드 overloading과 매개 변수
메서드 overloading
메서드 overloading
- 변수와 달리 하나의 클래스에 동일한 이름의 메서드는 여러 개 정의 가능, 변수는 에러 발생
- 매개변수의 개수와 타입을 다르게 하여 여러개 중복 하는 것이 메서드 overloading (중복정의)
- 이를 통해 동일한 이름의 메서드라도 매개변수의 형태에 따라 다른일을 수행할 수 있다.
- 이를 이용해 가독성을 늘리고 코드의 재사용성을 늘린다.
메서드 오버로딩 예시
```Java
public void printData(int data){
}
public void printData(double data){
}
public void printData(char data){
}
// print(), println() 함수는 대표적인 오버로드된 빌트인 함수
- 리턴타입은 다르고 매개변수가 같은 경우, 매개변수 이름만 다른 경우는 오버로딩 되지 않음
- 매개변수가 순서만 다른 경우에는 메서드 오버로딩으로 인식됨,
- 매개변수 순서바꾸기로 동일타입 다른 변수를 넣는 메소드를 만들 수 있음
#### 생성자 overloading
- 클래스로부터 객체를 생성할 때, 필요한 변수들만 적절히 초기화하기 위해 생성자 오버로딩 지원
- this() 메서드는, 같은 클래스 내의 Overloading된 다른 생성자 메서드를 호출할 때 사용 가능
- this() 메서드를 이용하여 중복되는 코드를 최소화하여 가독성을 늘릴 수 있음
### 매개변수
#### 매개변수 개념
- 매개변수를 전달할 때 값에 의한 전달이냐 주소에 의한 전달이냐에 따라 동작이 달라짐
- 값 복사 : int 형, char 형 같이 기본형의 경우 값복사, 전달한 값의 변형으로 원본이 바뀌지 않음
- 주소 복사: int[] 같은 배열형의 경우, 원본을 참조하므로, 값이 변형되면 참조된 원본 또한 바뀜
- 즉 값을 복사해서 변수에 넣는게 아니라 그 주소를 변수에 넣어 그 주소에 있는 값을 참조함
- 즉 값 복사는 단순히 메서드 수행에 필요한 값만 넘기는 경우에는 기본형으로
- 메서드 수행이후, 그 결과값을 유지하고 싶으면 참조형으로 매개변수를 넘긴다.
#### 가변적 매개변수
- 매개변수 개수가 지정되어야만 하는 제한을 극복하기 위해 가변적 매개변수를 제공함
- 매개변수의 숫자를 컴파일이나 실행시에 미리 지정하지 않고, 가변적을 사용하는 방식
> 가변적 매개변수 형식과 예시
```Java
[modifier] 리턴타입 메서드명(데이터타입... 매개변수이름){
//내용 매개변수 이름은 해당 티입으로 지정된 변수의 배열로 값을 받음
// 반복문이나 원소 접근을 통해서 변수 사용 가능, 길이만큼 반복문 통과 가능
// 가변적 매개변수는 매개변수 리스트에서 맨 마지막에 딱 한번만 사용 가능
}
int sum(int... i){
//
}
sum(1,1,1)// 갯수와 관계없이
sum(1,1,1,1,1,1,1)// 함수 실행 가능
`
람다식?
_articles/computer_science/PL/JAVA/JAVA 기본/자바 문법/JAVA 기본-메서드 매개변수와 오버로딩.md