Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 네트워크
- 형변환
- 메소드
- 생성자
- 오버라이딩
- 다운캐스팅
- 웹동작방식
- 웹스토리지 사용법
- JPA
- 한번에insert하기
- static
- 스프링부트
- java
- java기초
- 스프링시큐리티
- 0으로변환
- 자바
- 상속
- 프로젝트
- qclass
- 업캐스팅
- http
- 엔티티설계
- git commit취소
- MySQL
- 기초
- Git
- 파비콘에러
- 레포지토리설계
- 코린이
Archives
- Today
- Total
딱콩이의 봄
생성자 오버로딩(Constructor Overloading) 본문
✔️클래스 필드의 초기화는 다양한 방식으로 이루어질 수 있으며 이를 위해 다양한 형태의 생성자를 정의할 수 있습니다.
✔️생성자의 이름은 반드시 클래스의 이름과 동일해야 하기 때문에 다수의 생성자 정의는 생성자 오버로딩으로 정의합니다.
✔️생성자 오버로딩은 해당 클래스를 구성하는 생성자들의 매개변수 개수와 타입, 순서를 달리하여 정의합니다.
✔️객체의 인스턴스화 과정에서 생성자를 호출하며 이때 파라미터를 다르게 하여 필요한 생성자를 호출합니다.
예시1
class Animal {
String name;
void setName(String name) {
this.name = name;
}
}
class Dog extends Animal {
void sleep() {
System.out.println(this.name + "zzz");
}
}
class HouseDong extends Dog {
HouseDog(String name) {
this.setName(name);
}
HouseDog(int type) {
if(type == 1) {
this.setName("yorkshire");
}else if (type == 2) {
this.setName("bulldog");
}
}
void sleep() {
System.out.println(this.name + "zzz in house");
}
void sleep(int hour) {
System.out.println(this.name + "zzz in house for " + hour + "hours");
}
}
public class Sample {
public static void main(String[] args) {
HouseDog happy = new HouseDog("happy");
HouseDog yorkshire = new HouseDog(1);
System.out.println(happy.name); //happy 출력
System.out.println(yorkshire.name); //yorkshire 출력
}
}
예시2
public class Employee {
private String name;
private int age;
private String department;
public Employee() {
System.out.println("Employee() 생성자 호출");
}
public Employee(String name) {
System.out.println("Employee(String name) 생성자 호출");
}
public Employee(String name, int age) {
System.out.println("Employee(String name, int age) 생성자 호출");
}
public class Test {
public static void main ( String args[]) {
Employee employee1 = new Employee();
Employee employee2 = new Employee("김수현");
Employee employee3 = new Employee("홍길동", 20);
System.out.println(employee1);//Employee() 생성자 호출
System.out.println(employee2);//Employee(String name) 생성자 호출
System.out.println(employee3);//Employee(String name, int age) 생성자 호출
'개발 > JAVA' 카테고리의 다른 글
JAVA 메모리 모델 (0) | 2022.08.29 |
---|---|
this() Constructor (0) | 2022.08.29 |
디폴트 생성자(Default Constructor) (0) | 2022.08.29 |
생성자(Constructor) (0) | 2022.08.27 |
오버로딩 (OverLoading) (0) | 2022.08.27 |
Comments