본문 바로가기
언어/JAVA

Constructor 생성자

by hazel_ 2021. 5. 29.

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

댓글