Constructor (생성자)란?
new 연산자와 같이 사용되어 클래스로부터 객체를 생성할 때 호출된다.
객체의 초기화를 담당한다.
모든 클래스에는 생성자가 반드시 존재하며, 하나 이상의 생성자를 가질 수 있다.
생성자의 이름은 클래스의 이름과 동일하며, 생성자들은 method overloading을 통해 선언된다.
public class Test03 {
public static void main(String[] args) {
Member m1=new Member();
m1.name="홍길동";
m1.dept="인사부";
m1.age = 1;
}
}
class Member{
String name;
String dept;
int age;
}
위와 같은 코드가 있다.
기존의 코드에서는 기본 생성자 코드를 따로 적지 않아도, 최소한의 객체를 선언할 수 있다.
하지만 객체 선언과 동시에 초기화는 불가능하다.
그래서 위처럼 생성자를 사용하지 않는다면, 객체를 선언한 후 객체의 변수마다 값을 넣어줘야한다.
기본 생성자
일단 먼저 생략되어있는 기본 생성자를 보자.
2021.05.26 - [언어/JAVA] - Setters, Getters
Getters, Setters 처럼 이클립스 내에 있는 기능을 이용하여 간단하게 생성자를 구현할 수 있다.
생성자를 생성하고 싶은 위치에 커서를 두고
Source -> Generate Constructor using Fields -> 변수에 체크 해제 -> Generate
public class Test03 {
public static void main(String[] args) {
Member m1=new Member();
m1.name="홍길동";
m1.dept="인사부";
m1.age = 1;
}
}
class Member{
String name;
String dept;
int age;
public Member() {
super();
}
}
이렇게하면 커서가 놓였던 자리에 기본 생성자가 만들어진다.
그렇다면 객체를 만드는 것과 동시에 값을 넣을 수 있는 생성자는 어떻게 만들까?
기본 생성자를 만들었던 방법과 동일한 기능에서 변수의 체크를 한 후 Generate하면 된다.
public class Test03 {
public static void main(String[] args) {
Member m1=new Member("홍길동", "인사부", 1);
}
}
class Member{
String name;
String dept;
int age;
public Member() {
super();
}
public Member(String name, String dept, int age) {
super();
this.name = name;
this.dept = dept;
this.age = age;
}
}
이렇게 생성하고 난 후에는 main문 내의 선언처럼 선언을 하여 객체를 생성하면 된다!
'언어 > JAVA' 카테고리의 다른 글
JAVA 최대공약수 구하기 (0) | 2021.07.23 |
---|---|
JAVA 입력 (0) | 2021.07.20 |
Method Overloading (0) | 2021.05.29 |
Setters, Getters (0) | 2021.05.26 |
Class (0) | 2021.05.26 |
댓글