1. 메서드 정의
1) 메서드 개요
- 클래스 내에 위치하며 행위를 담당하는 프로그램 영역
- 메서드 문법
반환데이터형 메서드명(매개변수 리스트) { -> 필요시 매개변수 리스트 적음(여러개일수도, 없을수도 있음)
변수 선언; -> 이 변수는 여기 안에서만 사용
문장; -> 실행문, 덧셈, 뺄셈, 연산식 등
return 반환 값;
}
* 메서드 문법
- 메서드 명은 식별자 선언 규칙에 따라 부여함
(영문자, 숫자 혼용, 밑줄문자, 단, 시작은 영문자로, 예약어/특수문자X, 대소문자 구별)
- 매개변수 리스트는 데이터형과 변수명으로 나타내며, 한 개도 없을 수도 있음(두개 이상 시 ,로 구분)
- 반환데이터형은 반환 값의 타입과 일치해야 하며 반환할 값이 없을 경우 void로 기술해야 함
- 반환 값이 없을 경우 return문은 생략 가능 아니면 return; 이렇게
2) 메서드 정의 및 활용
- 메서드 정의
ex) 반환 값이 없으며 문자열을 5번 출력하는 메서드 정의
void printString() { -> () : 매개변수 리스트 존재X, void : 반환값 없음
int i;
for(i = 0; i < 5; i++)
System.out.println("자바 프로그래밍");
}
}
-> void 타입으로 printString이라는 메서드를 정의한 것
ex) 반환 값이 없으며 매개변수에 전달된 횟수만큼 문자열을 출력하는 메서드 정의
void printString(int count) { -> 정수형 변수 count라는 이름으로 매개변수를 만듦
for (i = 0; i < count; i++) {
System.out.println("자바 프로그래밍");
}
}
ex) 1~10까지 합을 구해 반환하는 메서드 정의
int addData() { -> 정수형 반환값 -> 반드시 return문 써야 함
int i, sum = 0
for (i = 1; i <= 10; i++) {
sum += i;
}
return sum; -> 호출한 곳에 55를 넘겨줄 수 있음
}
ex) 1부터 매개변수에 전달된 값까지의 합을 구해 반환하는 메서드의 정의
int addData(int num) {
int i, sum = 0;
for (i = 1; i <= num; i++)
sum += i;
}
return sum;
}
-> 10으로 호출했다면 55를 넘겨줄 수 있다.
2. 오버로딩
1) 오버로딩 개요
- 메서드 오버로딩 : 메서드의 명칭이 동일하나 매개변수의 개수와 타입을 다르게 구현하는 것을 의미
- 메서드를 동일한 이름으로 여러 개 정의 가능하며 반환타입은 다를 수 있음
- 동일한 이름의 메서드가 다르게 인식되기 위한 조건
-> 메서드의 매개변수 개수가 다름
-> 메서드의 매개변수 개수가 동일하나 데이터형이 다름
- 메서드의 명칭이 동일하나 접근 제한자 또는 반환데이터형만 다른 경우
-> 오버로딩으로 간주되지 않으며 이 경우 컴파일 에러 발생
2) 오버로딩 활용
ex) 매개변수의 개수가 다른 경우 오버로딩
void printString() {
System.out.println("자바 프로그래밍");
}
void printString(int count) {
int i;
for (i = 0; i < count; i++) {
System.out.println("자바 프로그래밍");
}
}
-> 호출 시 매개변수를 넘기느냐 넘기지 않느냐에 따라 위 또는 아래가 작동 됨
ex) 매개변수의 데이터형이 다른 경우 오버로딩
void addData(int num1, int num2) {
int result;
result = num1 + num2
System.out.println(result);
}
void addData(double num1, double num2) {
double result;
result = num1 + num2
System.out.println(result);
}
-> 정수로 호출시 첫번째 메서드 호출, 실수로 호출시 두번째 메서드 호출됨
- 메서드와 오버로딩 예
public class Exam10_1
void printString() {
System.out.println("자바 프로그래밍");
}
void printString(int count) {
int i;
for (i = 1; i < count; i++) {
System.out.println("자바 프로그래밍");
}
}
public static void main(String[] args) {
Exam10_1 ex = new Exam10_1();
ex.printString(); -> 자바 프로그래밍
ex.printString(3); -> 자바 프로그래밍
자바 프로그래밍
}
}
'프로그래밍 > 자바(java) 융합개발자 2차' 카테고리의 다른 글
[취성패] 자바 배우기 - 선수학습(static) (2) | 2020.12.12 |
---|---|
[취성패] 자바 배우기 - 선수학습(생성자) (0) | 2020.12.12 |
[취성패] 자바 배우기 - 선수학습(클래스) (0) | 2020.12.12 |
[취성패] 자바 배우기 - 선수학습(배열-일차원, 이차원) (0) | 2020.12.12 |
[취성패] 자바 배우기 - 선수학습(반복문-for, while구문) (0) | 2020.12.12 |