JAVA를 잡아라!...
JAVA_08_메서드 본문
#1 메서드(method)
- 클래스 안에서 특정 기능을 수행하기 위해 코드들을 하나의 블록으로 따로 묶어 놓은 집합
- 메서드를 구현함으로써 특정 기능이 여러 번 필요할 때, 코드를 반복적으로 사용하는 것을 피할 수 있음
- ==> 코드 재사용 가능, 중복된 코드 제거 가능
- 모듈화 : 코드들의 집합을 따로 분리하는 것
▶ 기본 구조
접근제한자 반환타입 메서드명(자료형 변수명1, 자료형 변수명2,...) {
// 기능을 수행할 코드들
}
- 접근 제한자(access modifier)
- 해당 메서드에 접근할 수 있는 범위를 결정
- 클래스/메서드/필드에 대한 접근을 어느 범위까지 제한하느냐에 대한 지시어
- 반환 타입(return type)
- 메서드 호출시 블록 안에 있는 코드들을 실행한 후 결과값을 반환함
- 메서드를 호출했을 때 결과값으로 돌려받을 데이터의 자료형
- 반환값이 없는 경우엔 반환 타입 'void' 사용
- 기본 자료형 : 정수형, 문자형, 실수형, 논리형
- 참조 자료형 : 배열, 클래스, ...
- 메서드 이름
- 변수처럼 이름을 가지고, 메서드 호출시 사용
- 하나의 메서드에 하나의 기능만 수행하도록 작성
- 메서드명만으로 메서드 기능을 쉽게 알 수 있도록 설정
▶ 메서드를 메모리에 할당하는 방법
// ex) main 메서드
public static void main(String[] args) {
// public : 모든 클래스에서 접근 가능
// static : 프로그램 시작과 동시에 메모리에 할당
// void : 반환할 값이 없음
}
- 라이브러리 클래스에 있는 메서드
- 인스턴스 메서드 : 객체를 생성함과 동시에 객체의 멤버들이 메모리에 할당. 객체를 생성한 후 사용 가능
- 정적 메서드 : 프로그램 시작과 동시에 메모리에 자동으로 할당. 바로 사용 가능
- 실행 클래스에 있는 메서드
- 객체를 생성할 방법이 없기 때문에, 무조건 static으로 메서드 선언
▶ 메서드 호출
메서드있는클래스 참조변수 = new 클래스();
참조변수.메서드명();
(단, 같은 클래스에 있는 메서드를 호출할 때는 메서드명만 호출)
- 다른 클래스에 선언된 메서드 사용 : 해당 클래스의 객체 생성 후 인스턴스의 메서드 호출
- 같은 클래스에 선언된 메서드 사용 : 바로 호출 가능
#2 매개변수 & return
▶ 매개변수
- 특정 기능을 수행하기 위한 메서드는 기능을 수행할 때 사용할 인자를 받을 수 있음
- 메서드 정의할 때, 소괄호()안에 작성
▶ 리턴값(return value)
접근제한자 반환타입 메서드명() {
// 기능을 수행할 코드들
return 결과값;
}
- 메서드를 호출할 때, 메서드로부터 실행한 결과값
- 메서드가 반환할 값이 있다면 반드시 return 구문을 통해 결과값을 반환하고 메서드 종료
- 리턴값이 없는 메서드의 경우, 반환 타입이 void --> return; 을 이용해 메서드 종료 가능
#3 getter() & setter()
- 객체의 필드를 객체 밖에서 필드에 마음대로 접근하고 값을 변경하면 문제 생길 수 있음!
- 객체 지향 프로그래밍에서는 메서드를 통해서 필드의 값을 불러오고, 필드의 값을 변경해야 함
- 즉, 필드를 사용하려면 메서드를 이용하도록 설계 가능
- < 장점 >
- 필드를 보호할 수 있음
- 메서드에서 필드에 들어갈 값을 검증한 후 필드에 대입
- 외부에서 사용할 필드의 값을 정제한 후 값 제공
- private 필드 : 객체 외부에서 접근이 불가하지만, 필드가 선언된 클래스에서는 접근 가능
- getter() : private 필드를 객체 외부에서 값을 불러오기 위해 구현하는 메서드
- setter() : private 필드의 값을 대입
'JAVA > JAVA_멘토씨리즈' 카테고리의 다른 글
JAVA_10_상속 (0) | 2023.12.31 |
---|---|
JAVA_09_생성자 (0) | 2023.12.31 |
JAVA_07_클래스 (0) | 2023.12.25 |
JAVA_04~06_제어문(조건문, 반복문), 배열 (1) | 2023.12.18 |
JAVA_01~03_자바 프로그래밍의 기본, 변수와 자료형, 연산자 (0) | 2023.12.17 |