반응형
생성자란?
클래스 생성할 때
Person person= new Person();
이때 Person()을 생성자라고 한다.
생성자의 역할
클래스를 처음 만들 때 멤버 변수나 상수를 초기화하는 것
디폴트 생성자
Person()와 같이 직접 작성하지 않았지만 자동으로 만들어지는 생성자를 디폴트 생성자라고 함
주의할 점은 디폴트 생성자는 클래스 내부에 생성자가 하나도 없을 경우에만 만들어진다는 점
생성자 오버로드
클래스에 둘 이상의 생성자가 제공되는 경우. 이때는 인스턴스를 만들 때 필요한 생성자를 골라 사용 가능하다.
public class Student {
String name;
int age;
public Student() {}
public Student(String pName, int pAge) {
name = pName;
age = pAge;
}
}
위와 같이 다양하게 생성자를 작성 가능하다.
package first_project;
public class Hellojava {
public static void main(String[] args) {
Student student1 = new Student();
student1.name = "Lukas";
student1.age = 20;
Student student2 = new Student("Tom", 20);
}
}
위는 두 가지 방법으로 인스턴스를 생성한 예시이다.
참조 자료형이란?
기본 자료형(int, char, float 등)과 달리 클래스 자료형으로 선언
참조 자료형의 활용
package first_project;
public class Subject {
String subjectName;
int subjectScore;
}
package first_project;
public class Student {
int studentId;
String studentName;
Subject korean; //Subject 자료형을 이용하여 선언
Subject math;
}
package first_project;
public class Hellojava {
public static void main(String[] args) {
Student student1 = new Student();
student1.studentName = "lee";
student1.studentId = 1;
student1.korean = new Subject();
}
}
댓글