세로형
Recent Posts
Recent Comments
Link
04-24 00:01
«   2024/04   »
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
Archives
Today
Total
관리 메뉴

꿈 많은 사람의 이야기

자바 생성자 본문

java

자바 생성자

이수진의 블로그 2017. 8. 10. 08:45

생성자는 new 연산자와 같이 사용되어 클래스로부터 객체를 생성할 때 호출되어 객체의 초기화를 담당한다. 객체 초기화란 필드를 초기화하거나, 메소드를 호출해서 객체를 사용할 준비를 하는것이다.

자바에서의 객체는 생성자를 실행시키지 않고서 만들 수 없다. new 연산자에 의해 생성자가 성공적으로 실행되면 힙 영역에 객체가 생성되고 객체 주소가 리턴된다.

모든 클래스에는 생성자가 반드시 존재하며, 하나 이상을 가질 수 있다(오버로딩). 만약 개발자가 클래스 내부의 생성자 선언을 생략했으면 컴파일러는 기본 생성자를 바이트 코드에 자동 추가 시킨다.
예를들어  소스 파일(A.java)에선
class A
{

}

이면 바이트 코드파일(A.class)에서는
class A
{
     public A()
     {

      }
}
와 같이 생성된다.

생성자는 메소드와 비슷한 모양을 가지고 있으나, 리턴 타입이 없고 클래스 이름과 동일하다. 클래스 이름과 동일하다는 것이 중요하다.

만약 생성자 안이
class A
{
     public A(int a, int b)
     {

      }
}
이면 다른 곳에서 객체를 생성할 때

A a = new A(10, 20); 이런식으로 호출해야한다.

또한

public A(int a){

}


public A(int a, int b){

}

와 같이 생성자는 오버로딩이 가능하다
생성자 오버로딩은 안에 들어가는 매개변수가 다른 것이다.
만약 매개변수 하나인 생성자에서 매개변수가 2개짜리인 생성자를 호출하려면 this()라는 키워드를 이용할 수 있다.

public A(int a){
     this(a, 20);
}


public A(int a, int b){

}

이와같이 this 키워드를 이용해 다른 생성자를 호출 할 수 있다.

반응형
그리드형

'java' 카테고리의 다른 글

자바 정적 멤버, static  (0) 2017.08.10
자바 메소드  (0) 2017.08.10
자바 객체, 객체 지향 프로그래밍  (0) 2017.08.10
자바 향상된 for문(foreach문)  (0) 2017.08.10
자바 메모리 영역  (0) 2017.08.10
Comments