티스토리 뷰
메서드(Method)
메서드는 클래스 영역에 선언된 함수이다.
더 정확하게는 "특정 작업을 수행하는 명령문들의 집합"이며,
클래스의 기능에 해당한다.
메서드는 다음과 같이 선언한다.
public static int add(int x, int y) { // 메서드 시그니처
int result = x + y; // 메서드 바디
return result;
}
뜯어보자면 메서드 시그니처에 해당하는 부분에는 메서드에 대한 정보를,
메서드 바디에 해당하는 부분에는 해당 메서드가 호출될 시 수행하는 작업에 대한 정보를 담고 있다.
계속 보자면, 위 메서드는 이름이 add이며, int 타입 두 개의 값(x, y)을 매개변수로 입력받아 더해주는 메서드이다.
메서드 이름 add 앞의 int는 이 메서드의 반환 타입을 말하는데, 반환 타입은 결괏값의 타입이라고 이해하면 된다.
주의할 점은 메서드의 반환 타입이 void가 아닐 경우, 메서드 바디 안에 반드시 return문이 존재해야 한다는 점.
void를 반환 타입으로 가지는 메서드의 예는 아래와 같다.
void printHello() { // 반환타입이 void인 메서드
System.out.println("hello!");
}
반환 타입이 void, 즉 반환 값이 없는 메서드는 메서드 바디의 내용을 실행하기만 하고 종료된다.
메서드를 호출하는 방법은 필드와 동일한데, 먼저 인스턴스를 생성 후 "인스턴스명.메서드이름"을 사용한다.
메서드 오버로딩(Method Overloading)
메서드 오버로딩은 하나의 클래스 안에 같은 이름의 메서드를 여러 개 정의하는 것을 말한다.
오버로딩을 하는 이유는 하나의 메서드 이름으로 여러 가지 경우의 수를 다루기 위함인데,
메서드를 오버로딩 하기 위한 조건은 다음의 두 가지가 있다.
- 메서드의 이름이 같을 것
- 매개변수의 개수 또는 타입이 다를 것(반환 타입은 영향을 주지 못함)
이름이 같되 매개변수가 다르다는 말은 아래의 예를 보면 이해가 쉽다.
public class Overloading {
public static void main(String[] args) {
Shape s = new Shape(); // 객체 생성
s.area(); // 메서드 호출
s.area(5);
s.area(10,10);
s.area(6.0, 12.0);
}
}
class Shape {
public void area() { // 메서드 오버로딩. 같은 이름의 메서드 4개.
System.out.println("넓이");
}
public void area(int r) {
System.out.println("원 넓이 = " + 3.14 * r * r);
}
public void area(int w, int l) {
System.out.println("직사각형 넓이 = " + w * l);
}
public void area(double b, double h) {
System.out.println("삼각형 넓이 = " + 0.5 * b * h);
}
}
//출력 결과
넓이
원 넓이 = 78.5
직사각형 넓이 = 100
삼각형 넓이 = 36.0
Shape 클래스 안에 area라는 이름을 가진 메서드가 네 개가 있지만, 각각 다른 매개변수를 가지고 있으며
각각 다른 값을 출력하는 것을 볼 수 있다.
또한 위에서 언급한 바와 같이, s.area를 통해 메서드를 호출하는 것도 확인할 수 있다.
'Java+Spring > Java' 카테고리의 다른 글
[Java]this() vs. this (0) | 2022.07.13 |
---|---|
[Java]기본 생성자 vs. 매개변수가 있는 생성자 (0) | 2022.07.13 |
[Java]생성자(Constructor) (0) | 2022.07.13 |
[Java]필드(field), static 키워드 (0) | 2022.07.13 |
[Java]객체의 생성과 활용 (0) | 2022.07.08 |
[Java]클래스(Class)와 객체(Object) (0) | 2022.07.08 |
- Total
- Today
- Yesterday
- 알고리즘
- 스프링
- 지지
- 유럽여행
- 자바
- 세모
- 야경
- 세계여행
- Python
- 남미
- Backjoon
- spring
- 유럽
- 맛집
- java
- 세계일주
- 여행
- 기술면접
- 중남미
- 백준
- Algorithm
- 파이썬
- RX100M5
- a6000
- 리스트
- BOJ
- 면접 준비
- 동적계획법
- 칼이사
- 스트림
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |