메소드 선언부 method signiture
- 리턴 타입: 메소드가 리턴하는 결과의 타입 푷시
- 메소드 이름: 메소드의 기능이 드러나도록 식별자 규칙에 맞게 이름을 지어준다
- 매개 변수 선언: 메소드를 실행할 때 데이터를 받기 위한 변수를 선언
- 메소드 실행 블록: 실행할 코드를 작성
메소드 선언
- 메소드 선언은 선언부와 실행 블록으로 구성
리턴 타입
- 리턴값의 타입 == 실행한 후의 결과값
- 메소드는 리턴값이 있을 수도 있고 없을 수도 있으나 리턴값이 있을 경우 리턴 타입이 선언부에 명시되어야 함
메소드 이름
- 숫자로 시작하면 안되고 $와_를 제외한 특수문자 사용 금지
- 관례적으로 메소드 이름은 소문자로 작성
- 서로 다른 단어가 혼합된 이름이라면 뒤이어 오는 단어의 첫 글자는 대문자로 작성
매개 변수 선언
- 메소드가 실행할 때 필요한 데이터를 외부로부터 받기 위해 사용
매개 변수의 개수를 모를 경우
- 매개 변수를 배열 타입으로 선언하는 것
int sum1(int[] values){ }
int sum2(int ...values) { }
리턴문
- 리턴값이 있는 메소드
- return 리턴값;
- return문이 없다면 컴파일 에러가 발생
- return문이 실행되면 메소드는 즉시 종료
리턴값이 없는 메소드:void
- void로 선언된 메소드에서 return은 메소드 실행을 강제 종료 시키는 역할을 함
메소드 호출
- 메소드는 클래스 내.왜부의 호출에 의해 실행됨
- 클래스 내부의 다른 메소드에서 호출할 경우 단순한 메소드 이름으로 호출하면 되지만
- 클래스 외부에서 호출할 경우, 클래스로부터 객체를 생성한 뒤 참조변수를 이요해서 메소드를 호출해야함
- 객체가 존재해야 메소드도 존재하기 때문
객체 내부에서 호출
메소드(매개값, ...);
타입 변수 = 메소드(매개값, ...);
객체 외부에서 호출
- 외부 클래스에서 메소드를 호출하려면 클래스로부터 객체를 생성해야함
- 메소드는 객체에 소속된 멤버이므로 객체가 존재하지 않으면 메소드도 존재하지 않기 때문
클래스 참조변수 = new 클래스 (매개값,..);
- 객체가 생성되었다면 참조 변수와 함께 도트(.) 연산자를 사용해서 메소드를 호출
참조변수.메소드(매개값, ...);
타입 변수 = 참조변수.메소드(매개값, ...);
메소드 오버로딩
- 클래스 내에 같은 이름의 메소드를 여러개 선언하는 것
- 매개 변수의 타입, 개수, 순서 중 하나가 달라야 함
- 매개값을 다양하게 받아 처리 할 수 있음
- 이름만 다르다고 해서 오버로딩이 아님
확인 문제
- 리턴값이 없는 메소드는 리턴 타입을 void로 해야한다.
- 리턴 타입이 있는 메소드는 리턴값을 지정하기 위해 반드시 return문이 있어야한다
- 매개값의 개수를 모를 경우 ... 를 이용해서 매개 변수를 선언할 수 있다.
- 같은 이름의 메소드를 여러 개 선언하는 것을 메소드 오버로딩이라고 한다.
메소드 오버로딩에 대한 설명으로 맞는 것에 O/X
- 동일한 이름의 메소드를 여러개 선언 하는 것을 말한다. (o)
- 반드시 리턴 타입이 달라야 한다. (x)
- 매개 변수의 타입, 개수, 순서를 다르게 선언해야 한다.(o)
- 매개 값을 타입 및 개수에 따라 호출될 메소드가 선택된다 (o)
MemberService
public class MemberService {
boolean login(String id, String password) {
if (id.equals("hong") && password.equals("12345")) {
return true;
} else {
return false;
}
}
void logout(String id){
System.out.println("로그아웃 되었습니다.");
}
}
'Java > 혼자 공부하는 자바' 카테고리의 다른 글
혼자공부하는자바 6-6 패키지와 접근 제한자 (0) | 2022.11.28 |
---|---|
혼자공부하는자바 6-5 인스턴스 멤버와 정적 멤버 (0) | 2022.11.28 |
혼자공부하는자바 ch 6-3 생성자 (0) | 2022.11.25 |
혼자공부하는자바 ch 6-2 필드 (0) | 2022.11.23 |
혼자공부하는자바 ch 6-1 객체 지향 프로그래밍 (1) | 2022.11.22 |