티스토리 뷰
생성자란? 인스턴스 생성시 딱 한번 호출되는 메소드로써,
인스턴스 변수의 초기화를 목적으로 정의되는 메소드입니다.
생성자를 사용하는 이유는
인스턴스 변수의 초기화를 한결 수월하게 진행할 수 있기 때문입니다..
실습 예제를 통해 공부하겠습니다.
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 |
댓글