코딩 기록들

[Java Programming] 7.1 메소드 오버로딩 본문

Java

[Java Programming] 7.1 메소드 오버로딩

코딩펭귄 2024. 1. 26. 09:05

자바에서 작성하는 변수나 메소드, 클래스, 인스턴스, 생성자 등은 유일한 이름으로 구분해야함 ( 변수 중복선언, 메소드 중복선언은 할수없음)

만약, 강제로 선언하면 아래와같은 에러발생

Duplicate field 클래스명.변수명
Duplicate method 메소드명() in type 클래스명

 

단, 메소드 오버로딩 기법으로 동일한 이름의 메소드를 정의하고 사용할 수 있음

메소드오버로딩

- 같은이름의 메소드를 여러개 만들 수 있음)

- 클래스 내에 같은 이름의 메소드를 여러개 선언하는 것

 

기준 : 1. 메소드 명 동일, 2. 파라미터개수 / 파라미터의 타입 / 순서 중 하나가 달라야 함 (리턴타입은 무관)

 

 

생성자 오버로딩

- 생성자도 메소드이기 때문에 오버로딩이 가능함

- 매개변수를 달리하는 생성자를 여러개 선언하는것 (매개변수의 타입, 개수, 순서 중 하나이상 다르개 선언)

- 클래스 내에 생성자를 정의할경우 FruitSeller는 파라미터가 없는 new FruitSeller();생성자는 호출할 수 없음(기본생성자는 자동으로 만들어지지 않기 때문) -> 기본생성자 호출이 필요할 경우, 생성자 오버로딩을 이용해 기본 생성자를 만들어 사용할 수 있음

public FruitSeller() {
        this.money = 10000;
        this.fruitStock = 4;
    }
    
    // 단, 이렇게 사용하면 값이 고정이 됨

- 생성자 : 파라미터 개수가 적은것에서 많은거를 호출하면됨

단, 호출시 this.~~ 로 쓰는게 아닌, this(파라미터); 로 사용함

** 생성자 내부에서 다른 생성자를 호출할 땐, 가장 윗줄에 써야됨