JAVA-9

유명준·2024년 2월 1일

JAVA

목록 보기
8/15
post-thumbnail

1. 오버로드

1-1. 메서드 오버로드(Overload)

  • 원칙적으로 하나의 클래스 안에서는 동일한 이름의 메서드가 두개 이상 존재할 순 없지만,
    이를 가능하게 하는 예외적인 처리 기법

1-2. 이름이 동일한 메서드를 정의하기 위한 조건

  • 메서드간의 파라미터가 서로 달라야 한다
    -> 파라미터의 데이터 타입이 다르다
    (데이터 형이 동일하고 변수의 이름이 다른 경우는 동일한 파라미터로 인식된다)
    -> 파라미터의 개수가 다르다
    ->서로 다른 데이터형을 갖는 파라미터들의 전달 순서가 다르다
  • 리턴형이 다른 경우는 오버로드의 성립에 아무런 영향을 주지 않는다.

1-3. 오버로드의 예시

  • 파라미터의 데이터 형이 서로 다르기 때문에
    오버로드 성립
    public void plus(int a ){...}
    public void plus(boolean a){...}

  • 파라미터의 개수가 서로 다르기 때문에 오버로드 성립
    public void user(int a){...}
    public void user(int a,int b){...}

  • 데이터 형의 전달 순서가 서로 다르기 때문에 오버로드 성립
    public void user(int a , boolean b) {}
    public void user(boolean a , int b) {}

  • 오버로드 성립 불가
    plus(int a , int b )
    plus(int b , int a ) // 자바에서 파라메터 위치로 첫번재 변수 체크

  • 오버로드 성립 가능
    plus(int a , String b , int c ){}
    plus(int a , int c , String b ){} //

  • 오버로드 성립가능
    plus(int a ){...}
    plus(int a , int b){...}

1-4. 오버로드의 예시

  • System.out.println( );
  • 오버로드는 하나의 메서드를 호출할 수 있는 모든 경우의 수를 미리 준비해 놓음으로서,
    메서드를 만드는 측은 번거로울 수 있지만 메서드를 호출하는 측은 데이터 타입을 신경쓰지 않고
    편리하게 사용할 수 있게 하기 위함이다.

1-5. 생성자의 Overload

  • 생성자 역시 메서드의 한 종류이므로 Overload가 가능하다
  • 생성자를 Overload할 경우, 해당 클래스에 대해 "객체를 생성하는 방법"을 다양하게 준비할 수 있게 된다.

1-6. this 키워드를 사용한 생성자 Overload

  • this 키워드의 용법
    -> 메서드처럼 사용할 경우 , 현재 클래스의 다른 생성자를 의미한다.
  • this 키워드를 사용하여 생성자 Overload를 간결하게 처리하기
    -> 파라미터가 서로 다른 생성자들이 하나의 완전한 생성자를 호출하도록 하여
    데이터의 초기화를 한 곳에서 일괄적으로 처리하도록 구현할 수 있다.

0개의 댓글