JAVA - 생성자

박종휘·2022년 10월 5일
0

JAVA - 국비

목록 보기
13/29
post-thumbnail

1. 생성자

1-1. 생성자란?

  • new 키워드를 사용하여 객체가 생성될 때 자동으로 실행되는 특수한 형태의 메서드
  • 리턴형을 명시하지 않으며, 메서드의 이름은 클래스와 동일하다.
class Student {
	Student() {
    		// 이 안은 객체가 생성될 때 자동으로 호출된다.
    }
}

Student std = new Student();
  • 자동으로 실행된다는 특성 때문에, 객체가 생성되면서 해당 객체의 특성을 초기화하기 위하여 사용된다.
    (ex : 멤버변수의 초기 값을 할당하는 용도)

1-2. 기본 생성자

  • 파라미터가 없는 생성자
  • 클래스에 특별히 생성자가 정의되지 않은 경우 java 컴파일러가 기본 생성자가 존재한다고 인식한다.
class Student {
	Student() {
    	// 생성자는 있지만, 내용은 비어있다.
    }
}

1-3. 생성자의 활용

  • 생성자는 멤버변수의 값을 초기화 하기 위해 사용한다.
class Book{
	String subject;
	String content;
	
	/*
	 * 생성자 -> 객체가 생성될 때, 자동으로 실행되는 특수한 메서드
	 * 특징 -> 리턴형을 명시하지 않는다. 클래스와 이름이 동일하다.
	 */
	Book(){
		System.out.println("생성자 호출");
		this.subject = "JAVA 입문";
		this.content = "JAVA란 무엇인가?";
	}
	
	void read() {
		System.out.println("read() 메서드 실행");
		System.out.println( this.subject );
		System.out.println( this.content );
	}
}

public class Main03 {

	public static void main(String[] args) {
		// Book 클래스의 생성자에서 멤버변수에 대한 기본 값을 설정하기 때문에,
		// 객체를 생성하는 것 만으로 멤버변수가 초기화 된다.
		Book book = new Book();
		book.read();
		
	}

}
result

생성자 호출
read() 메서드 실행
JAVA 입문
JAVA란 무엇인가?

1-4. 파라미터를 갖는 생성자

  • 생성자도 메서드의 한 종류이므로 파라미터를 함께 정의하는 것이 가능하다.
  • 생성자의 파라미터를 멤버변수에 복사하는 것으로 객체의 초기화를 외부적인 요인에 의해 처리할 수 있다.
class StudentJava {
	String name;
    int age;
    
    public StudentJava(String name, int age) {
    	// 생성자 파라미터의 값을 멤버변수에 복사
        this.name = name;
        this.age = age;
    }
}

public class Main04 {
	public static void main(String[] args) {
    	// 생성자에 파라미터가 정의된 경우
        // 객체 생성 구문에서 해당 파라미터를 전달해야 한다.
        // 객체를 생성하면서 설정한 파라미터는 생성자를 통해
        // 멤버변수에 저장된다.
        StudentJava stdJava = new StudentJava("Java학생", 28)
    }
}
profile
개린이의 개발 고수되기 작전!

0개의 댓글