오버로드(Overload)

sey950·2024년 1월 9일
0

Java

목록 보기
12/12
post-thumbnail

1. 메서드 오버로드

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

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){...}

  <ex>
    plus(int a, int b){}
	plus(int b, int a){}	=>	성립 x


	plus(int a,String b ,int c){}
	plus(int a,int c ,String b){}	=> 성립

	plus(int a,){}
	plus(int a, int b){}	=> 성립

2. 생성자의 오버로드

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

- this키워드를 사용한 생성자 overload

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

0개의 댓글

관련 채용 정보