티스토리 뷰
생성자 ( Constructor ) 란 ?
객체를 생성하고, field를 초기화하기 위한 메소드
-
클래스명과 이름이 동일하고, 리턴타입이 없습니다.
class Test {
public Test() {} // 생성자입니다.
}
-
new 연산자와 함께 사용됩니다.
Test t = new Test();
-
기본 생성자는 생략하면 자동으로 생성됩니다.
-
매개변수를 갖는 생성자를 정의하면 기본 생성자는 더 이상 자동으로 만들어지지 않습니다.
public class AA {
// new AA();
}
public class BB {
public BB() {} // new BB();
}
public class CC {
public CC(int cc) {} // new CC(); (X)
// new CC(10); (O)
}
-
생성자는 상속되지 않습니다.
-
다만, 자식클래스의 생성자 호출 시 부모클래스의 생성자 또한 호출됩니다.
public class Test {
public Test() {
System.out.println("기본 생성자입니다.");
}
public Test(int i) {
System.out.println("매개변수를 갖는 생성자입니다.");
}
public static void main(String[] args) {
Test tDefault = new Test();
Test tParameter = new Test(10);
}
}
기본 생성자 ( Default Constructor )
-
클래스 이름과 동일, 리턴타입 없음, 접근제한자는 public
파라미터가 있는 생성자 ( 오버로딩 )
-
파라미터의 타입이나 갯수를 다르게 하여 다른 일을 하게 한다.
class Test {
// 기본 생성자 (default constructor)
public Test() {}
// 파라미터가 있는 생성자
public Test(int a) {}
public Test(int a, int b) {}
}
'JAVA > 이론' 카테고리의 다른 글
[JAVA] [OOP] 추상 클래스 ( Abstract Class ) 와 인터페이스 ( Interface ) (0) | 2019.11.28 |
---|---|
[JAVA] [OOP] 상속 ( Inheritance ) 과 다형성 ( Polymorphism ) (0) | 2019.11.28 |
[JAVA] [OOP] 클래스 , 객체 , 인스턴스 란 ? (2) | 2019.11.27 |
[JAVA] [OOP] Object Oriented Programming (객체 지향 프로그래밍) 이란 ? (2) | 2019.11.27 |
[JAVA] JAVA의 프로그래밍 과정 / JVM의 메모리 구조 - stack , heap , static (0) | 2019.11.27 |