Java : 메서드 오버로딩, 매개변수(기본형, 참조형)

커비·2024년 11월 13일
0

Java

목록 보기
39/55

메서드 오버로딩

오버로딩

❤️‍🔥 : 똑같은 이름 위에 덮어서 다른 기능을 사용하는 것
: 함수가 하나의 기능만을 구현하는 것이 아니라 하나의 메서드 이름으로 여러 기능을 구현하도록 하는 Java의 기능

  • 한 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메서드가 있더라도, 매개변수의 개수 또는 타입, 순서가 다르면 동일한 이름을 사용해서 메서드를 정의할 수 있다.

오버로딩의 조건

  • ❤️‍🔥 메서드의 이름이 같고 매개변수의 개수, 타입, 순서가 달라야 함
  • '응답 값만' 다른 것은 오버로딩을 할 수 없음
  • 접근 제어자만 다른 것도 오버로딩을 할 수 없음
  • 결론 : 오버로딩은 매개변수의 차이로만 구현할 수 있음

오버로딩의 장점

  1. 메서드 이름 하나로 상황에 따른 동작을 개별로 정의할 수 있음
    - 예를 들면 메세지 출력할 때 쓰는 println()이 있음
    - println()의 매개변수로는 int, String, boolean 등 다양하게 넣을 수 있음
  2. 메서드의 이름을 절약할 수 있음
    : 메서드 이름 1개로 동작을 정의할 수 있음
    - 만약 오버로딩이 안된다면 println()printInt(), printDouble()처럼 메서드명이 길어지고 낭비되었을 것

오버로딩된 println() 확인

  • println() 안에 들어가는 매개변수가 모두 다 다름 (기능을 다르게 가져감)

기본형 & 참조형 매개변수

기본형 매개변수 (읽는 것 가능)

메서드를 호출할 때 전달할 매개값으로 지정한 값을 메서드의 매개변수에 복사해서 전달함

  • 매개변수의 타입이 기본형일 때는 값 자체가 복사되어 넘어가기 때문에 매개값으로 지정된 변수의 원본값이 변경되지 않음

참조형 매개변수 (읽고 변경하는 것 가능)

메서드를 호출할 때 전달할 매개값으로 지정한 값의 주소를 매개변수에 복사해서 전달함

  • 매개변수를 참조형으로 선언하면 값이 저장된 곳의 원본 주소를 알 수 있기 때문에 값을 읽어 오는 것은 물론 값을 변경하는 것도 가능함
  • 메서드의 매개변수 뿐만 아니라 반환타입도 참조형이 될 수 있음
    : 반환타입이 참조형이라는 것은 반환하는 타입이 '실제값의 주소' 라는 의미임
profile
전공은 컴퓨터공학, 복수전공은 해킹보안학, 직장은 방학(파워 구직중)

0개의 댓글