생성자
생성자는 객체가 생성될 때 자동으로 실행되는 특수한 형태의 메서드를 말합니다.
#01. 생성자 이름 규칙
- 생성자는 클래스의 이름과 동일해야 한다.
- 리턴형을 명시하지 않는다.
- 필요하다면 파라미터를 정의할 수 있다.
#02. 생성자의 주 용도.
객체가 생성될 때 멤버변수의 값을 초기화(가장 처음에 값을 할당하는 행위)하기 위해 사용한다.
SimpleConstructor.java
class MyBook {
String title;
int pages;
String author;
// 생성자
MyBook() {
System.out.println("----- 생성자가 실행되었습니다. -----");
this.title = "자바 교과서";
this.pages = 400;
this.author = "자바 강사";
}
}
public class SimpleConstructor {
public static void main(String[] args) {
MyBook myBook = new MyBook();
System.out.println(myBook.title);
System.out.println(myBook.pages);
System.out.println(myBook.author);
}
}
출력결과
----- 생성자가 실행되었습니다. -----
자바 교과서
400
자바 강사
#03. 기본 생성자
모든 클래스는 반드시 하나 이상의 생성자를 포함해야 한다. (하지만 지금까지의 예제들은 생성자를 포함하지 않고 있다.)
만약 소스코드 상에 생성자가 정의되지 않았다면 자바 컴파일러는 다음과 같이 파라미터와 구현부({}
)가 비어 있는 생성자가 있다고 간주한다.
이를 기본 생성자라고 한다.
class foo{
Foo() {
// 생성자는 있지만, 내용이 비어있다.
}
}
#04. 파라미터를 갖는 생성자
생성자도 메서드의 한 종류이므로 파라미터를 함께 정의한는 것이 가능하다.
생성자의 파라미터를 멤버변수에 복사하는 것으로 객체의 초기화를 외부적인 요인에 의해 처리할 수 있다.
ConstructorParams.java
class Student{
String name;
int level;
int age;
// 생성자 --> 주로 멤버변수에 할당할 값들을 파라미터로 정의
Student(String n, int l, int a) {
System.out.println("----- 생성자가 실행되었습니다. -----");
this.name = n;
this.level = l;
this.age = a;
}
}
public class ConstructorParams {
public static void main(String[] args) {
Student s1 = new Student("민철", 4, 24);
Student s2 = new Student("영민", 3, 22);
System.out.printf("%s %d세, %d학년\n", s1.name, s1.age, s1.level);
System.out.printf("%s %d세, %d학년\n", s2.name, s2.age, s2.level);
}
}
출력결과
----- 생성자가 실행되었습니다. -----
----- 생성자가 실행되었습니다. -----
민철 24세, 4학년
영민 22세, 3학년
'코딩 공부 > Java' 카테고리의 다른 글
[Java] 18_MyBatis 설정하기 (0) | 2020.05.12 |
---|---|
[Java] 17_DAO 패턴 (0) | 2020.05.12 |
[Java] 17_은닉성 (0) | 2020.05.08 |
[Java] 14_재귀호출 (0) | 2020.05.08 |
[Java] 13_값 복사, 참조 복사 (0) | 2020.05.08 |