티스토리 뷰
Goal
- 생성자의 개념과 기본 생성자에 대해 알아본다
- 생성자를 구현하는 방법과 생성자의 오버로딩에 대해 알아본다
1. 생성자 (constructor)
- 객체를 생성할 때 new 키워드와 함께 호출 (객체 생성 외에는 호출할 수 없음)
- 인스턴스를 초기화 하는 코드가 구현 됨 (주로 맴버 변수 초기화)
- 반환 값이 없음, 상속되지 않음
- 생성자는 클래스 이름과 동일함.
1-1 기본 생성자 (default constructor)
- 하나의 클래스에는 반드시 하나 이상의 생성자가 존재해야 함
- 프로그래머가 생성자를 구현하지 않으면 컴파일러가 프리컴파일 단계에서 생성자 코드를 넣어줌
*프리컴파일 단계 : 컴파일 전의 단계, 작성한 코드를 바로 컴파일 하는 것이아니라, 컴파일러가 한번 검토하고 컴파일을 실행함. 이때, 생성자의 유무를 확인해서 생성자가 없으면 디폴트 생성자를 만들어준다.
- 기본 생상자는 매개 변수가 없고, 구현부가 없음
- 만약 클래스에 다른 생성자가 있는 경우 디폴트 생성자는 제공되지 않음.
Student student = new Student(); //Student() : 객체를 생성할 때, 생성자를 호출함
public class Student {
//Student 클래스에 생성자가 정의되어 있지않으면
public Student() {} // 이런 형식으로 디폴트 생성자를 컴파일러가 만들어줌
}
1-2 생성자의 구현
- 생성자는 원하는 매개변수를 넣어주거나, 선언문을 작성하여 직접 구현할 수 있다.
- 생성자를 구현했을 때, 매개변수를 정의했다면, 생성자를 호출할 때 매개변수를 반드시 넣어주어야 한다.
- 만약 매개변수 없이 인스턴스를 생성하고 싶다면, 디폴트 생성자를 직접 구현하면 된다.
- 즉, 생성자는 여러가지 구현할 수 있다.
Student student = new Student();
Student student = new Student(2014, "James");
public class Student {
Int StudentID;
String StudentName;
public Student() {}
//public자리에는 다른 키워드가 올 수 도 있고, 아얘 입력을 안 할 수도 있다.
public Student(Int ID, String name) { //매개변수
StudentID = ID;
StudentName = name;
}
}
1-3 생성자 오버로딩 ( constructor overloading )
- 오버로딩 : 메서드의 이름이 같지만 매개변수는 다른경우.
- 생성자 오버로딩 : 생성자를 두 개 이상 구현하는 경우
- 생성자 오버로딩을 하면 사용하는 코드에서 여러 생성자 중 선택하여 사용할 수 있음
- private 변수도 생성자를 이용하여 초기화를 할 수 있음.
public class Student {
private int studentID; // Student클래스 내부에서만 사용할 수 있도록 private 설정
public Student (int id) {
studentID = id;
}
}
class StudentTest {
Student student = new Student();
// student.studentID; <- private변수인 studentID는 StudentTest에서 참조 불가.
Student student1 = new Student(124);
// 생성자를 이용해서 private로 선언된 studentID값을 참조하여 변경가능.
}
'Java > Java 올인원 패키지' 카테고리의 다른 글
5. 접근 제어자, 정보은닉 (Java) (0) | 2020.03.14 |
---|---|
4. 참조 자료형 (reference data type) (0) | 2020.03.14 |
2. 함수와 메서드 (0) | 2020.03.13 |
1. 클래스와 객체 (Java) (0) | 2020.03.13 |
15. 다형성, 형변환 (Java) (0) | 2020.03.13 |
- 20200403
- 20200406
- chapter7
- 20200423
- 20200504
- 20200429
- 20200425
- 20200413
- 20200502
- 20200424
- 20200503
- likelion
- 20200624
- 20200417
- 백준
- 20200317
- 생활코딩리눅스
- 20200510
- 20200420
- 20201204
- 20200622
- 20200330
- 20200427
- 20200415
- 20200428
- 20200421
- chapter8
- 20200804
- 20200319
- 20200512
- Total
- Today
- Yesterday