Chapter 6-4 메서드
📌 1. 메서드
- 메서드는 특정 작업을 수행하는 일련의 문장들을 하나로 묶은것
- 메서드에는 작업을 수행하는데 필요한 값(입력)과, 반환하는 결과(출력)만 알면 된다.
- 그래서 메서드를 내부가 보이지 않는 블랙박스라고도 한다.
📒 2. 메서드를 사용하는 이유
(1) 높은 재사용성
- 한번 만들어 둔 메서드는 몇번이고 호출할 수 있으며, 다른 프로그램에서도 사용이 가능함
(2) 중복된 코드의 제거
- 한 프로그램에서 반복적으로 나타나는 문장들을 하나의 메서드로 만들어서 사용하면 코드의 중복이 제거되고, 변경사항이 발생하였을떄도
이 메서드만 수정하면 되므로 유지보수에 용이하고, 오류의 발생 가능성도 낮아진다.
(3) 프로그램의 구조화
- main 메서드안에 모든 문장을 넣는 식으로 프로그램을 작성하면 소스코드가 몇만줄이 되었을때 오류를 찾거나, 수정하는것이 어렵다.
- 문장들을 작업 단위로 나눠서 여러개의 메서드에 담아 프로그램의 구조를 단순화 시키는것이 필요하다.
🔎 3. 메서드의 선언과 호출
(1) 메서드의 선언
- 메서드는 아래 그림과 같이 선언부와 구현부로 이루어져있다.
- 메서드 선언부와 구현부
- 메서드 선언부는 '메서드 이름', '매개변수 선언', '반환타입'으로 구성된다.
- 메서드 선언부 다음에 오는 괄호{}를 메서드의 구현부라고 하고, 메서드를 호출했을 때 수행될 문장들을 넣는다.
int add(int x, int y) // 각 변수간의 구분은 ','를 사용함, 변수와 다르게 두 변수의 타입이 같아도 변수의 타입을 생략 할 수 없다.
// 만약 입력받을 값이 없다면 ()안에 아무것도 적지않는다.
int result = x+y;
return result; // 결과(출력)인 반환타입을 적는다. 반환타입이 없는 경우 void를 적어야한다.
// 매개변수를 여러개를 선언할 수 있지만, Return문은 하나의 값만 반환할 수 있다.
}
void print(){
.. 생략 ..
}
*) 지역변수
- 메서드 내에 선언된 변수들은 그 메서드 내에서만 사용할 수 있으므로, 서로 다른 메서드라면 같은 이름의 변수를 선언해도 됨!
(2) 메서드의 호출
1. 메서드 호출(내부 호출)
메서드이름(값1, 값2, ..);
ex)
result = add(3,5);
2. 클래스 외부에서 호출시 // 외부 클래스에서 메소드를 호출하려면, 클래스로부터 객체를 생성해야함.
클래스 참조변수 = new 클래스(매개값, ...)
ex)
public Class Car{
int speed;
}
void run(){
...
}
public class CarExample {
public static void main(){
Car mycar = new Car();
myCar.run();
}
}
- 메서드를 호출할 때 괄호()안에 지정해준 값들을 '인자' or '인수'라고 하고, 인자의 개수와 순서는 호출된 메서드의 선언된 매개변수와 일치해야한다. (일치하지 않을 경우 오류 발생)
(3) 메서드 오버로딩
- 메서드 오버로딩은, 하나의 메서드로 여러 기능을 담는다하여 붙여진 이름
- 오버로딩의 조건은 아래와 같다.
📍 오버로딩 조건 - 메서드의 이름이 같아야 한다. - 메서드의 리턴타입이 다른 경우는 오버로딩이 성립되지 않는다 - 매개변수의 개수 or 매개변수의 자료형이 달라야 한다. |
📌 4. 함수와 메서드의 차이점?
함수는 하나의 목적의 작업을 수행하기 위해 독립적으로 설계된 코드의 집합으로, 여러곳에서 호출되어 사용이 가능함
메서드는 객체의 기능을 구현하기 위한 클래스 내부에 구현되는 함수로 멤버 함수라고도함
함수는 어느곳에 속해있지 않고, 단독 모듈으로 어디서든 함수를 호출하여 사용하면 되지만
메서드는 클래스안에 속해있고, 멤버 변수들을 이용해 구현한 것으로 외부 클래스에서 사용시 클래스에대한 객체를 생성해야 사용할 수 있음
'✏️ Java' 카테고리의 다른 글
| 혼공자 | Chapter 6 . 클래스 5️⃣ (0) | 2022.11.30 |
---|---|
| 혼공자 | Chapter 6 . 클래스 4️⃣ (0) | 2022.11.29 |
Java | Extend와 Implements(인터페이스) (0) | 2022.11.25 |
| 혼공자 | Chapter 6 . 클래스 2️⃣ (2) | 2022.11.25 |
| 혼공자 | Chapter 6 . 클래스 (0) | 2022.11.22 |