Java

쉽게 배우는JAVA2-3

꽃달린감나무 2021. 8. 10. 17:29
728x90

"이 글은 글쓴이가 부스트코스에서 쉽게배우는 JAVA2를 통해 배우는 점을 남기는 공간입니다=)"

 

Constructor

프로그래밍에서는 시작하기전에 반드시 초기화를 해야하므로 클래스에는 반드시하나 이상의 초기화를 작업을 해주는 생성자가 존재해야 합니다. 생성자는 객체를 생성할 때 자동으로 호출되는 메소드(클래스와 동일한 이름의 메소드가 있다면 호출되도록 약속되어있어요!)로 클래스와 이름이 동일하며 Return Type이 없습니다.

 

예시를 들어보겠습니다! Print()클래스는 구분자를 사용할 때 마다 다른 구분자를 사용해야하는 클래스라고 가정합시다. 이를 생성자로 통해 초기화 해봅시다.

class Print {
	public String delimiter = "";
	
	public Print(String delimiter) {
	
		this.delimiter = delimiter;
	}
	public void A() {
		System.out.println(this.delimiter);
		System.out.println("A");
		System.out.println("A");
	}
	
	public void B() {
		System.out.println(this.delimiter);
		System.out.println("B");
		System.out.println("B");
	}

	
}

클래스 Print안에 이름이 동일한  Print 메소드가 생성자입니다. class 멤버 변수인 delimiter를 초기화 해주기 위한 메소드로 메소드를 사용할 때 전달해주는 매개변수의 값으로 초기화 됩니다. 이와 같이 생성자는 초기에 지정해야하는 값이나 작업을 수행할 때 사용됩니다!

 

Default Constructor
기본 생성자는 클래스에 생성자가 정의되어 있지 않으면 자동으로 생성되는 생성자로 매개변수값을 가지 않고, 내부에 작업을 수행하는 명령어를 갖고 있지 않습니다. 생성자가 기본적으로 하나 이상 존재해야하기 때문에, 자동으로 생성되는 것입니다.

 

this.*

인스턴스 또는 생성자 내에 현재 객체를 참조하는 키워드로 this를 사용하여 현재 객체의 모든 멤버를 참조할 수 있습니다. 위의 코드의 생성자 안을 보면 this.delimiter =delimiter; 가 되어 있는 부분에서 delimiter =delimiter를 둘 다 매개변 수를 인식을 하기 때문에 초기화 작업이 이루어지지 않습니다. 그럼 따른 변수를 사용하면 어떨까요? 그렇게 사용해도 가능하기 하지만 코드를 작성할 때 this키워드를 이용해 변수가 가지고 있는 의미를 해치지 않는 것이 더 좋은 코드이기 때문에 this키워드를 쓰는 것을 권장합니다.

 

728x90