티스토리 뷰

프로그래밍/Java

자바 ! 생성자

나는연어다 2017. 4. 22. 12:47

생성자란? 인스턴스 생성시 딱 한번 호출되는 메소드로써, 

인스턴스 변수의 초기화를 목적으로 정의되는 메소드입니다.



생성자를 사용하는 이유는 


인스턴스 변수의 초기화를 한결 수월하게 진행할 수 있기 때문입니다..



실습 예제를 통해 공부하겠습니다.

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
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함