40. 자바 [ 오버 로딩 ]

jhnada·2022년 8월 2일
0

오버 로딩

  • 오버로딩은 과적재 했다는 뜻으로
    같은 이름의 메서드를 만드는 것을 말한다.


hello로 예를 들자면

  • static void hello()
  • static void hello(int num)
  • static void hello(int sum, String str)
  • static void hello(String str, int sum)

이렇게 4개의 메서드로구분할 수 있는데

  1. () = 괄호 안에 아무것도 없는 메서드
  2. int num = int 타입이 들어간 메서드
  3. int sum, String str = int 타입과 String 타입이 들어간 메서드
  4. 3번에서 순서가 바뀐 메서드로 해석할 수 있다.

이와 같이 동일한 메서드 이름인데 이게 오류없이 가능한 이유는
같은 메서드의 매개변수의 타입이, 위치가 다르면 다른 함수로 인식해서 stack의 다른 공간을 만든다.

타입이 다르거나, 개수가 다르거나, 위치가 다르면
메서드의 이름이 같아도 다른 메서드로 인식하는 것이 오버 로딩이다.

오버로딩의 장점으로

  • 코드의 가독성이 좋아지고
  • 네이밍에 고민할 필요 없어지고
  • 개발자가 메서드를 호출할 때 메서드 이름 하나만 기억하면 된다는 것이다.

정리

  1. 메서드는 동일한 이름으로 만들 수 없다.
  2. 단, 매개변수의 타입,위치,개수가 다르면 다른 메서드로 인식한다.
  3. 개발자 입장에서 함수 이름을 하나만 기억하면 된다!
  4. 하지만 경우의 수가 너무 많아지면 힘들어 진다.
  5. 10개~ 20개 안팎일때 사용하는 것이 가장 좋다.

마지막으로
System.out.println(1);
System.out.println(1.0);
System.out.println(true);
또한 오버로딩 되어 있다는 것을 알도록 하자!

profile
밑바닥부터 배우는 초짜 개발자

0개의 댓글