오버로딩
❤️🔥 : 똑같은 이름 위에 덮어서 다른 기능을 사용하는 것
: 함수가 하나의 기능만을 구현하는 것이 아니라 하나의 메서드 이름으로 여러 기능을 구현하도록 하는 Java의 기능
- 한 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메서드가 있더라도, 매개변수의 개수 또는 타입, 순서가 다르면 동일한 이름을 사용해서 메서드를 정의할 수 있다.
println()
이 있음println()
의 매개변수로는 int
, String
, boolean
등 다양하게 넣을 수 있음println()
은 printInt()
, printDouble()
처럼 메서드명이 길어지고 낭비되었을 것println()
안에 들어가는 매개변수가 모두 다 다름 (기능을 다르게 가져감)기본형 매개변수 (읽는 것 가능)
메서드를 호출할 때 전달할 매개값으로 지정한 값을 메서드의 매개변수에 복사해서 전달함
- 매개변수의 타입이 기본형일 때는 값 자체가 복사되어 넘어가기 때문에 매개값으로 지정된 변수의 원본값이 변경되지 않음
참조형 매개변수 (읽고 변경하는 것 가능)
메서드를 호출할 때 전달할 매개값으로 지정한 값의 주소를 매개변수에 복사해서 전달함
- 매개변수를 참조형으로 선언하면 값이 저장된 곳의 원본 주소를 알 수 있기 때문에 값을 읽어 오는 것은 물론 값을 변경하는 것도 가능함
- 메서드의 매개변수 뿐만 아니라 반환타입도 참조형이 될 수 있음
: 반환타입이 참조형이라는 것은 반환하는 타입이 '실제값의 주소' 라는 의미임