728x90
생성자(Constructor)란?
- 생성자는 클래스 이름과 같은 이름의 함수다.
- 생성자는 void, int, String 등의 반환형이 선언돼 있지 않아서 리턴 값이 없다.
- 생성자는 중복 정의될 수 있다.
- 생성자는 객체를 초기화하는 작업만 하는 함수다.
- 생성자를 정의하지 않으면 컴파일러가 알아서 디폴트 생성자를 만들어 사용한다.
쉽게 말해서 생성자란, 객체를 만드는 특별한 메소드다.
생성자의 역할
생성자는 두 가지 역할을 한다.
- 객체 생성 : 객체를 만드는 것
- 객체 초기화 : 객체의 필드 값을 설정하는 것
생성자를 몰랐을 당시 생성자는 객체를 만들기만 했다. 초기화는 따로 진행했었다.
/* 1. 객체 생성 */
Cat c = new Cat();
/* 2. 필드 초기화 */
c.name = "네로";
c.weight = 3.78;
c.age = 3;
생성자를 활용하면, 위 코드를 단 한 줄로 만들 수 있다.
/* 객체 생성과 동시에 초기화 */
Cat c = new Cat("네로", 3.78, 3);
생성자 호출과 정의
생성자 또한 메소드이다. 따라서 호출과 정의로 나뉘어 사용한다.
class Cat{
String name;
double weight;
int age;
// 생성자 정의
public Cat(String name, double weight, int age) {
this.name = name;
this.weight = weight;
this.age = age;
}
}
public class CatExam {
public static void main(String[] args) {
Cat cat1 = new Cat("고영희",5.64,10); //호출 부분
}
}
이때 this라는 키워드를 사용하게 되는데
- 앞의 this.name은 필드 name을 말하고 =(이퀄) 뒤의 name은 매개변수를 의미한다.
- 즉 매개변수의 값을 필드에 대입하라는 의미가 된다.
총내용을 정리하자면
생성자
- 생성자는 객체를 만드는 특별한 메소드다.
- 생성자는 역할은, 객체 생성과 필드 초기화이다.
생성자 특징
- 생성자 또한 메소드이기에, 호출과 정의로 나뉜다.
- 생성자와 일반 메소드와의 차이는 리턴 타입의 유무다.
'JAVA' 카테고리의 다른 글
Set 과 Iterator (0) | 2021.07.23 |
---|---|
접근 제한자와 게터(Getter) 세터(Setter) (0) | 2021.07.19 |
Thread(쓰레드) (0) | 2021.07.15 |
Generic(제네릭) (0) | 2021.07.15 |
StringBuffer(스트링버퍼) (0) | 2021.07.13 |