생성자 (constructor)
- 생성자는 함수나 메서드와 달리 기능을 구현하지는 않고 오로지 객체를 생성하기 위해 호출된다. (new 키워드 사용)
- 객체가 생성될 때 변수나 상수를 초기화하거나 다른 초기화 기능을 수행한다.
- 생성자는 반환값이 없고 클래스와 동일한 이름을 사용한다.
- 대부분 정의된 클래스(server 코드)에서 사용하는 것이 아닌 외부(client 코드)에서 사용되기 때문에 public인 경우가 대다수지만, 경우에 따라 private으로 선언하기도 한다.
기본생성자 (default constructor)
- 클래스는 적어도 하나의 생성자는 반드시 가져야 한다.
- 생성자가 없는 경우에도 컴파일러가 생성자 코드( e.g. public Student() {} )를 넣어주어 객체를 생성할 수 있다.
- 이때 생성되는 생성자를 기본 생성자라고 하며, 구현부와 매개 변수가 없다.
- 매개 변수가 있는 생성자가 있으면 기본 생성자는 제공되지 않는다.
- 매개 변수가 있는 생성자와 없는 생성자를 함께 구현하고 싶다면 기본 생성자를 따로 명시해준다. (오버로딩)
Student.java
- - 같은 이름으로 기본 생성자와 매개 변수가 있는 생성자를 함께 구현해줄 수 있다.
- 객체 생성 할 때 매개 변수가 반드시 필요한 경우(e.g. 회원 가입시 정보 기입)에는 기본 생성자를 따로 명시하지 않는다.
- 매개 변수의 이름은 멤버 변수와 같은 이름을 사용한다.
- 이름을 구분해주기 위해 this 키워드를 사용한다. ( this.멤버변수 = 매개변수 )
package ch06;
public class Student {
public int studentId;
public String studentName;
public int grade;
public Student() { // 기본 생성자
}
public Student(int studentId, String studentName, int grade) { // 매개변수가 있는 생성자
this.studentId = studentId; // this 키워드로 멤버변수와 매개변수를 구분한다.
this.studentName = studentName;
this.grade = grade;
}
public String showStudentInfo() {
return studentName + " 학생의 학번은 " + studentId + "이고, " + grade + "학년 입니다.";
}
}
StudentTest.java
package ch06;
public class StudentTest {
public static void main(String[] args) {
Student studentLee = new Student();
System.out.println(studentLee.showStudentInfo());
Student studentKim = new Student(12345,"Kim",3);
System.out.println(studentKim.showStudentInfo());
}
}
수행 결과
null 학생의 학번은 0이고, 0학년 입니다.
Kim 학생의 학번은 12345이고, 3학년 입니다.'Java' 카테고리의 다른 글
| [Java 객체지향] 참조 자료형 변수 (0) | 2022.01.25 |
|---|---|
| [Java 객체지향] 인스턴스와 힙메모리 (0) | 2022.01.24 |
| [Java 객체지향] 클래스 생성하고 메서드 구현해보기 (0) | 2022.01.24 |