[JAVA]생성자

김주현·2021년 4월 1일
0

Java

목록 보기
10/15

초기화와 생성자

초기화는 어떤 일을 시작하기 전에 그 일을 하기 위해 필요한 준비와 같은 것을 말합니다. 생성자는 초기화를 객체 자체에서 할 수 있게 도와주는 기능이라고 생각하면 됩니다.


이전에는 이런식으로 언제나 setOperands() 메소드를 먼저 실행하여야 된다는 전제가 있었습니다.

좀더 편하게 사용하기 위해서는 클래스를 인스턴스화할때 left,right값을 기본적으로 지정할 필요가 있습니다.

class Calculator1{
	int left,right;
	//여기서 Calculator1은 생성자라고 합니다.
	//클래스 Calculator1이 생성될 때 ,
	//자동으로 클래스와 똑같은 이름의 생성자가 생성되도록 약속되어있다.
	//그리고 어떤 메소드보다 먼저 실행되도록 약속되어있다.
	public Calculator1(int left,int right) {
		this.left=left;
		this.right=right;
	}
	public void sum() {
		System.out.println(left+right);
		
	}
	public void avg() {
		System.out.println((left+right)/2);
		
	}
	

	
}

public class CalculatorDemo3 {

	public static void main(String[] args) {
    	//Calculator1는 클래스가 아닌 해당 클래스의 생성자이다.
        //인스턴스화 할때 10,20값 기본 지정한다.
		Calculator1 c1=new Calculator1(10,20);
		c1.sum();
		c1.avg();
		
		Calculator1 c2=new Calculator1(20,40);
		c2.sum();
		c2.avg();
	}

}

자바에서는 Calculator1클래스의 인스턴스가 생성될때 자동으로 클래스와 똑같은 이름을 가진 생성자가 호출되도록 약속되어있습니다. 그리고 생성자를 그 어떤 메소드보다 먼저 실행되도록 약속되어있습니다.

생성자의 특징

  • 값을 반환하지 않습니다.
    생성자는 인스턴스를 생성해주는 역할을 하는 특수한 메소드입니다. 그런데 반환값이 있다면 엉뚱한 객체가 생성될것입니다.
  • 생성자의 이름은 클래스의 이름과 동일합니다.

1개의 댓글

comment-user-thumbnail
2021년 5월 24일

1) 클래스 내 생성자를 선언하지 않을 시, 기본 생성자가 자동으로 생성됨을 숙지.

2) 생성자의 이름은 클래스 이름과 동일하네요. 임의 이름으로 못 씀을 숙지.

3) 앞으로는 Calculator1 c1=new Calculator1(10,20); 과 같은 객체생성 과정을

[클래스형식][클래스변수이름] = [new][생성자(임의로 설정한 입력변수)]

라고 일반화 하면 되겠네요.

답글 달기