"MyClass1"이라는 클래스를 하나 생성하고 이 클래스와 이름이 같은 메소드인 "public MyClass1()"이라는 메소드를 생성합니다. 바로 이 클래스의 이름과 동일한 메소드인 MyClass1() 이라는 메소드가 생성자인 것입니다.
이 생성자를 살펴보시면 Parameter로 두 개의 값을 받고 있습니다. 그리고 밑의 "this" 라는 Keyword를 통해 무엇인가 값을 할당하고 있습니다. "this"라는 키워드는 MyClass1 이라는 클래스의 멤버 변수에 접근할 수 있게 만들어주는 Keyword 입니다.
그리고 그 밑으로 Parameter로 받은 2개의 인자값을 출력하고 있는 걸 확인할 수 있고 그 밑으로 StudyNotePad 라는 클래스이 main 메소드에서 MyClass1 이라는 클래스를 "인스턴스화" 하면서 첫 번째 인자로 "Hello"를 두 번째 인자로 "Java"를 넣어주고 있습니다.
위 코드의 결과는 다음과 같습니다.
앞서 설명드렸듯이 "생성자(Constructor)는 객체를 생성할 때 최초로 실행되는 메소드의 일종입니다"의 의미가 이해되셨죠?
이 클래스이 멤버는 title ,author ,grade 입니다. 그리고 생성자를 통해 제목이라는 의미의 title을 매개변수로 받으면 기본적으로 (title,"고아모개",4) 라는 매개변수가 3개인 생성자를 호출합니다. 그래서 파라미터를 3개로 받고 있는 "TextBook()" 이라는 생성자로 전달하고 TextBook() 생성자에서는 전달 받은 값들을 멤버변수에 대입해줍니다.
그래서 이 클래스를 인스턴스화 시킬 때 3개의 매개변수를 통해 인스턴스화 시키면 파라미터가 3개인 TextBook()이라는 생성자로 가게 됩니다. 같은 원리로 2개의 매개변수를 통해 인스턴스화 시키면 파라미터를 2개로 받고 있는 TextBook() 생성자로 값이 전달됩니다.
결과값
내용이 크게 어려운 건 없으니 이해가 금방 되실겁니다. 결과값에서 알 수 있는 건 생성자를 통해 전달되지 않는 멤버 변수의 값은 각각의 데이터 타입의 초기값으로 설정되어 있다는 점입니다.
'Language > Java-backup' 카테고리의 다른 글
[Java] 상속 (Inheritance) (0) | 2022.04.03 |
---|---|
[Java] 캡슐화 (Encapsulation) (0) | 2022.04.03 |
[Java] 오버로딩 (OverLoading) (0) | 2022.04.03 |
[Java] 클래스 (0) | 2022.04.03 |