생성자(contructor)
- 인스턴스를 초기화할 때의 명령어 집합
- 생성자의 이름 = 그 클래스의 이름
- 생성자는 메소드X, 상속X, 리턴값X
public class Student {
int studentID;
String studentName;
int grade;
String address;
public String getStudentName() {
return studentName;
}
}
- 위와같은 클래스를 생성했을때 아래 코드와 같이 인스턴스를 생성할 수 있다.
Student studentA = new Student();
- 클래스 내에 따로 생성자를 만들지 않았지만 Student()라는 생성자를 통해 인스턴스를 생성하였다
- 클래스 내에 따로 생성자를 만들지 않으면 JAVA Compiler가 디폴트 생성자를 자동생성한다
- 인스턴스를 생성할 때 특정값이 꼭 들어가게 하고 싶다면 생성자를 직접생성할 수 있다.
- 생성자를 여러개 생성하여 전부 따로 사용이 가능하다. (오버로드 overload)
public class Student {
int studentID;
String studentName;
int grade;
String address;
public String getStudentName() {
return studentName;
}
// id와 name을 필수로 넣어야하는 생성자
public Student (int id, String name) {
studentID = id;
studentName = name;
}
// 생성자가 하나라도 존재하면 디폴트생성자가 생기지 않음
// 따라서 디폴트생성자를 사용하려면 직접 생성해줘야함
// 디폴트생성자 직접 생성
public Student() {}
}
- 위와같이 2개의 생성자를 만들었을경우 두가지 생성자 모두 사용할 수 있다. (오버로드 overload)
- 생성자의 이름은 .java파일 이름과 같아야한다.
디폴트 생성자 (default constructor)
- 매개변수X, 구현부X
- 하나의 클래스에는 반드시 적어도 하나의 생성자가 존재
- 프로그래머가 생성자를 기술하지 않으면 디폴트 생성자가 자동 생성된다.(컴파일러가 코드에 자동으로 넣어줌)
- 클래스 내에 매개변수가 있는 생성자를 추가하면 디폴트 생성자를 제공되지 않는다.
- 생성자 오버로드(Constructor Overload)
- 필요에 의해 생성자를 추가하는 경우 여러개의 생성자가 하나의 클래스에 존재
-
더보기오버로딩(Overloading)
: 같은 이름의 함수를 여러개 정의하고, 매개변수의 타입과 개수를 다르게 하여 매개변수에 따라 다르게 호출할 수 있게 하는 것.
오버라이딩(Overriding)
: 부모클래스의 메서드와 같은 이름, 매개변수를 재정의 하는 것.
출처
https://jeong-pro.tistory.com/95
객체 지향 프로그래밍이 뭔가요? (꼬리에 꼬리를 무는 질문 1순위, 그놈의 OOP)
객체 지향 프로그래밍(Object Oriented Programming) 여러 소프트웨어 관련 IT기업 신입사원 기술면접에서 면접자들 긴장을 풀어줄 겸 워밍업으로 자주 나오는 질문이다. "객체 지향 프로그래밍에 대해
jeong-pro.tistory.com
'JAVA > 언어입문' 카테고리의 다른 글
자바(JAVA) - 접근제어자(private/default/protected/public) (0) | 2022.03.15 |
---|---|
자바(JAVA) - 참조자료형(Reference Data Type) (0) | 2022.03.14 |
자바(JAVA) - 클래스(class) / 메소드(method) / 인스턴스(instance) (0) | 2022.03.09 |
자바(JAVA) - 객체지향 프로그래밍(OOP) (0) | 2022.03.09 |
자바(JAVA) 반복문(while, do-while, for)/ Continue/ Break (0) | 2022.03.07 |
댓글