[Java] 메소드 선언/호출 및 오버로딩

letsbebrave·2021년 12월 15일
0

Java

목록 보기
5/5
post-thumbnail

1. 메소드 선언

리턴타입 메소드이름 (매개변수 선언) {

메소드 실행 블럭

}

예시

public class Calculator{

  double divide(int x, int y) {
  // 리턴타입 메소드명(매개변수 선언)

    double result = (double) x/ (double) y;
    return result;

  }

}

1. 리턴 타입

void powerOn(){}
double divide(int x, int y){}
  • 리턴값의 타입
  • 리턴값 : 메소드를 실행한 후의 결과값
  • 메소드는 결과값이 있을 수도 있고 없을 수도(void) 있음
  • 리턴 값 있을 경우 리턴 값이 선언부에 명시되어 있어야 함

리턴값이 있느냐 없느냐에 따라 호출 방법 다름

powerOn();
double result = divide(2,3);

외부 클래스의 메소드를 호출하기 위해서는 클래스 객체를 생성하고 해당 객체의 참조변수 사용해서 호출해야 함

Calculator myCal = new Calculator(); // 클래스 객체 생성
myCal.powerOn(); // 참조변수 myCal로 메소드에 접근

매개변수의 개수 모를 경우
매개변수의 선언을 배열 타입으로 진행

int sum1(int[]  values){ }

int[] values = {1, 2, 3};
int result = sum1(values);
int result = sum1(new int[] {1, 2, 3, 4, 5});

2. 리턴문

리턴값이 있는 메소드
메소드 선언에 리턴 타입이 있는 메소드는 반드시 리턴문을 사용해서 리턴값 지정해야
리턴문 없으면 컴파일 에러
리턴문 실행 시 바로 메소드 종료됨

리턴값이 없는 메소드 : void
void로 선언된 메소드에서도 return문 사용 가능
but 리턴값을 지정하는 게 아니라 메소드를 강제 종료시키는 역할을 함
return;

3. 메소드 호출

객체 내부에서 호출
메소드(매개값, ...);
단순하게 메소드명과 매개변수의 타입과 수에 맞게 형성

객체 외부에서 호출
외부 클래스에서 메소드 호출 시
1. 참조변수와 함께 클래스 객체 생성
2. 참조변수를 통해 메소드에 접근
참조변수.메소드(매개값);

Car myCar = new Car();
myCar.keyTurnOn();

4. 메소드 오버로딩

클래스 내에 같은 이름의 메소드를 여러 개 선언하는 것
많이 싣는 것 = 하나의 메소드 이름으로 여러 매개변수를 담아 사용
메소드 호출 시 JVM은 매개값의 타입을 보고 메소드를 선택함

조건 : 매개변수의 타입, 개수, 순서 중 하나가 달라야 함

public class Calculator {

  double plus(double x, double y){
    double result = x + y;
    return result;
  }

  int plus(int x, int y){
    int result = x + y;
    return result;
  }

}
profile
그게, 할 수 있다고 믿어야 해

0개의 댓글