Java - 메서드
메서드
반복되는 명령들을 한 번에 묶어서 처리하고 싶을 때 사용한다.
캡슐화 원칙
자바의 모든 메서드는 클래스 안에 선언되어야 함.
- 메서드의 구조
public /* 1. 접근 지정자 */ void /* 2. 리턴 타입 */testMethod() {
}
public int addOne(int x /* 3. 매개변수*/ ) {
return x + 1;
}
1. 접근 지정자
-
private :
외부 클래스에서는 접근할 수 없다.
클래스 내부에서만 사용가능. -
public :
외부 클래스에서도 접근할 수 있다. -
prodected :
접근할 메서드가 선언된 클래스를 상속받는 자식 클래스일 경우,
외부에 있던 내부에 있던 클래스 상속이 가능하다.
추후에 자세하게 알아보자.
2. 리턴 타입
-
void 아무것도 반환하지 않는다.
메서드 내의 명령을 처리하고 메서드를 종료한다. -
기본 데이터형, 배열, 객체, 객체 배열 등 반환
리턴 타입에 맞게 메서드 안의 명령을 처리한 뒤에
메서드 이름 앞에 선언한 데이터형에 맞는 데이터타입을 반환해야한다.
3. 매개 변수
-
기본 데이터형이 전달되는 경우
값이 복사되어 전달. -
객체, 배열이 전달되는 경우
해당 객체의 레퍼런스를 전달.
추후 참조와 복사에서 자세하게 알아보자
메서드 오버 로딩
한 클래스 내에서 두 개 이상의 이름이 같은 메소드가 작성된 경우.
- 메소드 이름이 동일하되, 매개 변수의 개수가 다르거나, 매개변수 타입이 서로 달라야 한다.
- 리턴 타입은 오버로딩과 관련 없다.
class Cal{
public int sum(int a, int b) {
return a + b;
}
public int sum(int a, int b, int c) {
return a + b + c;
}
public int float sum(float a, float b) {
return a + b;
}
}
class Main {
public static void main(String[] args) {
Cal c = new Cal();
int r1 = c.sum(1,2);
int r2 = c.sum(3,4,5);
float r3 = c.sum(2.3, 3.3);
}
}
메서드 오버 라이딩
추후 클래스 상속에서 자세하게 알아보자.
댓글남기기