메서드
클래스 안에서 특정 기능을 수행하기 위해 코드들을 따로 하나의 블록으로 묶어 놓은 집합. 필요에 따라 이 집합을 호출해 사용할 수 있다. 메서드를 구현함으로써, 같은 내용의 코드를 반복적으로 사용하는 것을 피할 수 있다. 즉, 반복되는 문장들을 묶어서 메서드로 작성해 놓으면 필요할 때마다 재사용이 가능하며 중복된 코드를 제거할 수 있다. 이렇게 메서드처럼 코드들의 집합을 따로 분리하는 것을 모듈화라고 하는데 가독성을 향상시키고 유지보수에 용이하다.
접근제한자 반환 타입 메서드 이름(){
// 기능 수행할 코드
}
- 접근 제한자 : 변수와 마찬가지로 해당 메서드에 접근할 수 있는 범위를 결정
- 반환 타입 : 메서드를 호출하면 메서드는 블록 안에 있는 코드들을 실행한 후 결과값을 반환하는데, 어떤 타입으로 반환할 것인지 타입을 미리 정해준다. 반환값이 없는 경우에는 void를 사용한다.
- 메서드 이름 : 변수처럼 이름ㅇ르 가지고, 메서드를 호출할 때 사용한다.
메서드 호출하는 방법은 다음과 같다
메서드가 있는 클래스 참조변수 = new 클래스();
참조변수.메서드 이름();
메서드를 정의하고 호출하는 부분이 같은 클래스에 있는 경우에는 따로 객채명이나 클래스명을 작성하지 않아도 된다.
메서드는 같은 클래스에 있는 필드를 이용할 수 있고, 하나의 클래스에 2개 이상의 메서드를 선언할 수 있다.
매개변수
특정 기능을 수행하기 위한 메서드는 기능을 수행할 떄 사용할 인수를 받을 수 있는데 이거를 매개변수라고 한다. 메서드를 정의할 때, 소괄호() 안에 어떤 형태로 받을지 작성할 수 있다.
접근 제한자 반환 타입 메서드 이름(자료형 변수명){
// 기능을 수행할 코드들
}
메서드를 호출할 때 전달해 줄 변수의 자료형을 명시하고, 그 변수를 메서드 안에서 사용할 때 담아서 사용할 변수 이름을 작성한다. 쉽게 말해, 메서드를 호출할 때 같이 전달받는 변수를 메서드 안에서 사용할 지역변수에 담는 것이다.
return
메서드를 호출할 떄 매개변수를 전달해 준 것처럼, 필요에 따라 메서드로부터 실행한 결과값을 되돌려 받을 수 있는데 이를 리턴값이라고 한다. 앞에서 확인한 메서드 기본 형태에서 반환타입은 메서드를 호출했을 때 결과값으로 돌려받을 데이터의 자료형을 명시한다. 예를 들어, sum()이라는 함수의 결과값으로 정수를 돌려받는다면, 반환 타입으로 int를 작성한다. 여기서 중요한 것은, 메서드가 반환할 값이 있다면 반드시 return 구문을 통해서 결과값을 반환해 주고 메서드를 종료해야 한다. 만약 return 문이 없으면 컴파일 에러가 발생한다.
접근 제한자 반환 타입 메서드 이름(){
// 기능을 수행할 코드들
...
return 결과값;
}
자료형의 크기에 따라 실제로 던질 리턴값보다 작은 자료형으로 자동 형변환 되어 반환되는 것도 가능하다. 예를 들어, 반환 타입이 int라면 정수형인 byte, short, int를 리턴할 수 있고, 자동으로 int 타입으로 변환되어 리턴된다.
결과값을 저장할 변수의 자료형은 결과값의 자료형과 동일하거나 자동 형 변환이 될 수 있는 자료형이여야 한다.
리턴값이 없는 메서드의 경우, 앞에서 확인헀던 것처럼 반환 타입으로 void를 사용한다. 이 경우에는 return 문으로 결과값을 반환해 주지 않는다. 단, 메서드를 종료하기 위해서 반환값이 없는 return 문을 사용할 수 있다.
return;
while 문을 빠져나갈 때 break를 사용했던 것처럼, 메서드를 빠져나가기 위해 return을 사용한다.
Getter와 Setter 메서드
setAge 메서드를 이용해 age 값을 저장한다면, 우리는 필드에 값을 저장하기 전에 검증을 먼저 할 수 있다. 이러한 메서드를 'setter'라고 부른다.
일반적으로 setter 메서드를 사용할 떄는, 필드의 값을 객체 외부에서 직접 넣지 못하도록 필드에 접근을 제한한다. 필드가 선언되어 있는 클래스에서만 접근 가능한 필드를 우리는 private 하다고 표현할 수 있다. private 필드는 private int age; 이런식으로 선언한다.
필드를 private로 선언함으로써 필드를 한층 더 보호할 수 있게 되었는데, 객체의 외부에서 그 필드에 대한 값을 불러오는 것도 불가능해졌다.
private 필드를 객체 외부에서 값을 불러오기 위해 구현하는 메서드를 'getter'라고 한다.
private 필드는 객체 외부에서는 접근이 불가능하지만, 필드가 선언된 클래스에서는 어디서든 접근할 수 있다. 따라서 메서드를 통해서 값을 전달해 줄 수 있다.
void getAge(){
return age;
}'BOOK' 카테고리의 다른 글
| [JAVA] MENTOR JAVA SECTION 10 (2) | 2025.01.17 |
|---|---|
| [JAVA] MENTOR JAVA SECTION 9 (1) | 2025.01.16 |
| [JAVA] MENTOR JAVA SECTION 7 (0) | 2025.01.14 |
| [JAVA] MENTOR JAVA SECTION 6 (1) | 2025.01.07 |
| [JAVA] MENTOR JAVA SECTION 5 (0) | 2025.01.06 |