티스토리 뷰
반응형
참고 : https://data-make.tistory.com/200 (메서드 Overloading)
#. 생성자 Overloading
* 클래스로부터 객체를 생성할 때, 필요한 변수들만 적절히 초기화하기 위해 사용
> 생성자 Overloading
- 클래스로부터 객체를 생성할 때 객체의 변수들을 초기화하는 역할을 담당하는 메서드
- 메서드 Overloading 지원
ㄴ 하나의 클래스는 매개변수의 유형과 개수를 달리해서 여러개의 생성자를 갖도록 함
> 사용 예
- 특정 클래스로부터 객체 생성 -> Overloading 된 생성자 이용 -> 필요한 데이터로만 초기화된 객체 사용 가능
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | public class Employee { String name; int age; int salary; // 기본 생성자 형태의 생성자 // Employee Aaron = new Employee(); public Employee() { } // 직원 이름, 나이를 초기화하는 생성자 // Employee Aaron = new Employee("박지훈", 25); public Employee(String name, int age) { this.name = name; this.age = age; } // 직원 이름, 나이, 급여를 초기화하는 생성자 // Employee Aaron = new Employee("박지훈", 25, 500); public Employee(String name, int age, int salary) { this.name = name; this.age = age; this.salary = salary; } | cs |
> 주의
- 매개변수의 개수와 타입이 동일하므로, Overloading 불가 => error
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | public class Employee { ... // 직원의 이름, 나이를 초기화하는 생성자 public Employee(String name, int age) { this.name = name; this.age = age; } // 직원의 이름, 급여를 초기화하는 생성자 public Employee(String name, int salary) { this.name = name; this.salary= salary; } } | cs |
- Solution
* 매개변수의 위치를 변경하면 생성자 Overloading으로 사용 가능
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | public class Employee { ... // 직원의 이름, 나이를 초기화하는 생성자 public Employee(String name, int age) { this.name = name; this.age = age; } // 직원의 이름, 급여를 초기화하는 생성자 public Employee(int salary, String name) { this.name = name; this.salary= salary; } } | cs |
출처 : SW Expert Academy
반응형
'Web > JAVA' 카테고리의 다른 글
[JAVA] 매개변수(Call by value, Call by reference), 가변적 매개변수 (1) | 2019.07.26 |
---|---|
[JAVA] this()의 의미와 사용 (0) | 2019.07.26 |
[JAVA] 메서드 Overloading (0) | 2019.07.26 |
[JAVA] 이클립스 메서드 자동 구현 (Getter/Setter, toString) (0) | 2019.07.25 |
[JAVA] 메서드 정의, 구성 (0) | 2019.07.25 |
댓글