티스토리 뷰
728x90
반응형
생성자란 앞서 살펴봤던 클래스의 4가지 구성요소 중 하나로서,
인스턴스가 생성될 때 호출되는 <인스턴스 초기화 메서드>이다.
구체적으로는
Car bmw = new Car();
와 같이 인스턴스를 생성할 때, 가장 뒤에 쓰인 Car()가 바로 그 생성자이다.
추가로 생성자는 클래스의 구성요소이긴 하나 멤버는 아니라고 언급했었는데,
이 때문에 생성자는 상속되지 않고, 오버 라이딩의 대상이 되지도 않는다.
생성자는 메서드라고 편의상 적어두긴 했으나, 일반적인 메서드와는 크게 두 가지 차이점을 가지는데
- 생성자의 이름은 반드시 클래스의 이름과 같아야 한다.
- 생성자는 리턴 타입이 존재하지 않는다. 따라서 void 키워드도 쓰지 않는다.
가 그것이다. 즉, 엄밀하게 말하면 생성자는 메서드가 아니다. 메서드와는 다르다. 메서드와는..!
구체적인 생성자의 형태는 다음과 같은데,
public class ConstructorExample{
public ConstructorExample(매개변수){
...
}
}
생성자의 매개변수는 있을 수도 있고, 없을 수도 있다.
위와 같은 클래스와 생성자를 이용해 인스턴스를 생성하는 예를 다시 보자면
ConstructorExample example = new ConstructorExample(매개변수);
과 같은 형태가 될 것이다.
반면, 메서드와 비슷하게 생성자도 오버 로딩을 지원하는데, 메서드 때와 비슷하게 정의해 주면 된다.
예를 들면 다음과 같다.
public class ConstructorExample {
public static void main(String[] args) {
Constructor constructor1 = new Constructor();
Constructor constructor2 = new Constructor("Hello World");
Constructor constructor3 = new Constructor(5,10);
}
}
class Constructor {
Constructor() { // (1) 생성자 오버로딩
System.out.println("1번 생성자");
}
Constructor(String str) { // (2)
System.out.println("2번 생성자");
}
Constructor(int a, int b) { // (3)
System.out.println("3번 생성자");
}
}
// 출력 결과
1번 생성자
2번 생성자
3번 생성자
예의 Constructor 클래스 안에서 오버로딩을 활용하여 Constructor() 생성자가 여러 개 생성된 것을 볼 수 있다.
또한 (1) 번 생성자는 매개변수가 없고, (2), (3) 번 생성자는 매개변수가 있기 때문에 인스턴스를 생성할 때
각각 알맞은 인수를 넣어서 호출한 것도 확인할 수 있다.
반응형
'Java+Spring > Java' 카테고리의 다른 글
[Java]내부 클래스(Inner Class), 내부 클래스의 종류 (0) | 2022.07.13 |
---|---|
[Java]this() vs. this (0) | 2022.07.13 |
[Java]기본 생성자 vs. 매개변수가 있는 생성자 (0) | 2022.07.13 |
[Java]메서드(Method), 메서드 오버로딩(Method Overloading) (0) | 2022.07.13 |
[Java]필드(field), static 키워드 (0) | 2022.07.13 |
[Java]객체의 생성과 활용 (0) | 2022.07.08 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 스프링
- Backjoon
- java
- 세모
- 여행
- Algorithm
- 칼이사
- 백준
- 중남미
- 맛집
- 남미
- 세계여행
- a6000
- 유럽여행
- 면접 준비
- 알고리즘
- 리스트
- 유럽
- RX100M5
- 동적계획법
- 야경
- 지지
- 세계일주
- BOJ
- spring
- Python
- 자바
- 기술면접
- 파이썬
- 스트림
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
글 보관함