728x90
반응형
오늘은 생성자에 관해 글을 써보려한다.
먼저, 생성자는 뭘까?
생성자는 객체가 생성될 때 자동으로 발동하는 특별한 메소드이다.
대부분 객체를 생성하면 언제나 멤버 값을 설정하는 작업이 선행된다. 바로 이전 글에 썼던 Setter 메소드를 통해 이 작업을 하게 될 것이다.
Person p = new Person();
p.setMember("sam", 20);
...
그런데 위처럼 매번 객체를 new를 통해 생성하고 다음 줄에서 멤버 값을 설정하고 이 작업을 계속 반복하면 너무 짜증이 날 것이다.
생각해보면 변수도 만들면서 값을 초기화하면 코드가 더 간결했었다
int a;
a = 1;
int b = 2;
위 코드처럼 a보다 b의 코드가 더 간결하다.
객체도 생성하면서 값을 초기화하면 코드가 더 간결해진다
가장 위에서 썼던 Person class를 예로 들어 생성자에 대해 더 알아보자.
public class Person {
//접근 제한자가 default인 생성자
Person(String name, int age) {
System.out.println("Person 객체 생성");
}
//접근 제한자가 public인 생성자
public Person() {
System.out.println("public 생성자 호출");
}
}
만약 객체에 이렇게 접근 제한자가 default인 생성자가 있다면 다른 패키지에는 객체를 생성할 수 없다.
따라서, 객체의 생성자는 접근 제한자가 public이어야 한다. 그래야 어디서든 객체를 생성할 수 있다.
그리고 이 두 생성자는 잘 보면 메소드 이름이 같다. 역시 오버로딩이 되어있는 것이다.
728x90
반응형
'Language > Java' 카테고리의 다른 글
자바 클래스 안에 다른 클래스의 참조 변수가 있는 상황 (0) | 2022.05.02 |
---|---|
static 키워드 (0) | 2022.05.01 |
자바의 접근 제한자(Access Modifier) (0) | 2022.04.28 |
자바의 변수 종류 (0) | 2022.03.25 |
자바에서의 메소드 - 2 (0) | 2022.03.22 |