티스토리 뷰
생성자란? 인스턴스 생성시 딱 한번 호출되는 메소드로써,
인스턴스 변수의 초기화를 목적으로 정의되는 메소드입니다.
생성자를 사용하는 이유는
인스턴스 변수의 초기화를 한결 수월하게 진행할 수 있기 때문입니다..
실습 예제를 통해 공부하겠습니다.
public class A {
// 개발자가 직접 클래스에 생성자를 만들지 않으면
// 컴파일러가 아무일도 하지 않는 (객체만 만들어내는 역할을 하는) 기본 생성자(디폴트 생성자)를 만들어 낸다.
// 개발자가 생성자를 직접 만들어 놓았으면 디폴트 생성자는 컴파일러가 만들지 않는다.
// 생성자의 구조
// 1) 생성자는 무조건 접근지시 제어자가 """"public""""
// 이유 : 객체는 항상 클래스 외부에서 만든다.
// 때문에 private으로 되어있으면 외부에서 객체를 만들 수 없다
// 2) 생성자의 이름은 항상 클래스의 이름과 똑같다. 반환형은 없다.
// 3) 일반적인 메소드처럼 매개변수를 지정할 수 있다.
// 이런 형태의 생성자가 디폴트 생성자
// public A(){ }
private int num1 = 0; // 생성자에서 초기화가 되지 않는다.
private String str1 = ""; // 참조 형태의 자료형에는 null이라는 값이 들어간다.
// 보통 생성자에서는 멤버변수의 초기화 및 기타 필요 메소드를 호출하여 객체를 사용할 준비를 완료시킨다.
// 생성자에 초기화를 그대로 해주는 것이 좋다.
public A() {
System.out.println("A 생성");
this.num1 = 0;
this.str1 = "";
}
// 생성자에 매개변수가 있는 경우
// 보통은 멤버변수를 초기화 하기 위한 매개변수가 설정된다.
// 더 이상 기본 형태의 생성자 (new A() )의 호출은 불가능 하다.
public A(int num1, String str1) {
this.num1 = num1;
this.str1 = str1;
System.out.println("num1 : " + this.num1);
System.out.println("str1 : " + this.str1);
}
}
A객체를 사용하는 메인클래스
public class ExampleConstructor{
public static void main(String[] args) {
// 반드시 필요한 내용은 생성자에 넣어서 초기화한다.
A a1 = new A(10, "Hello");
A a2 = new A();
Circle c = new Circle(4);
c.showCircle();
Square s= new Square(4,5);
s.showSquare();
}
}
반응형
LIST
'프로그래밍 > Java' 카테고리의 다른 글
| 자바 ! 상속 (extends , super) (0) | 2017.04.24 |
|---|---|
| 자바 ! 메소드 오버로딩 (1) | 2017.04.23 |
| 자바 ! static 변수와 메소드 (정적변수, 메소드) (0) | 2017.04.22 |
| 자바 ! 캡슐화 (정보은닉, 접근지시제어자) (0) | 2017.04.21 |
| 자바 ! 접근 지시 제어자 (private, default, protected, public) (0) | 2017.04.20 |
댓글
