Search

반응형

'java constructor'에 해당되는 글 1건

  1. 2019.07.06 [Java_Tutorial]21강-자바 코딩, 클래 생성자 정의[Constructor, 자바 프로그래밍 기초 , 자바 튜토리얼]
반응형

[Oracle Java Tutorial을 읽고 순서에 의해 정리한 후 본인의 경험과 이해를 바탕으로 작성된 글임을 밝힌다.]

[Java Tutorial, 자바 프로그래밍 기초 배우기, Java Programming, 자바 튜토리얼]

이번 포스팅은 객체지향 프로그램인 자바(Java)에서 사용하는 생성자(Constructor)에 대해 알아본다.

클래스 (Classes)

클래스 생성자(Providing Constructors for your Classes)

클래스(Class)에는 생성자(Constructor)가 있다. 클래스를 이용해서 객체를 생성하는 시점에 생성자는 호출된다. 생성자는 메서드처럼 선언된다. 하지만 이름은 클래스 명과 같아야 하고 반환 타입이 없다. 아래 예를 확인해 보자.

   class TestConstructor{

    private int a;

    private int b;

    private int c;

    public TestConstructor(int aa, int bb, String cc){

       a=aa;

       b=bb;

       c=cc;

      }

   }

   TestConstructor tc = new TestConstructor(1, 2, “Test”);

위 코드에서 생성자는 객체가 생성(인스턴스)되는 시점에 new 키워드에 의해 호출된다. 그리고 클래스에 의해 생성된 tc 객체를 위한 메모리 공간이 생성되고 각 필드의 값이 초기화된다.

클래스는 생성자를 선언하지 않아도 기본적으로 생성자 하나는 가지고 있다. 어떠한 입력값도 없는 빈 생성자이다. 생성자는 1개 이상 구현할 수 있다. 단 입력값이 달라야 한다. 우선 입력값이 전혀 없는 기본 생성자부터 좀 전에 3개의 입력값(int, int String) 타입으로 구현된 생성자가 현재 존재한다.

자바(Java)에서는 메서드(method)의 오버로딩(Overloading)처럼 생성자도 입력값(argument)의 개수와 타입에 따라 여러 개를 생성할 수 있다. 같은 개수나 타입의 생성자를 구현하면 자바 플랫폼(platform)은 구별할 수 없게 되어 컴파일 오류가 난다.

 

 

사실 생성자는 클래스 구현할 때 필수적으로 구현하는 건 아니다. 앞서 이야기했던 거처럼 기본 생성자(입력값이 없는)가 존재하기 때문이다. 생성자를 만들지 않으면 컴파일러는 자동으로 기본 생성자를 만들어 준다. 그런데 이 기본 생성자는 슈퍼클래스의 입력값이 없는 생성자를 호출하게 된다. 만약 슈퍼클래스에 입력값이 없는 생성자가 없을 경우 컴파일러는 문제를 제기할 것이고 여러분은 그게 잘 동작하는지 반드시 확인해 봐야 한다. 만약 구현한 클래스에 명확한 슈퍼클래스가 없다면 암묵적으로 Object의 슈퍼클래스에서 입력값이 없는 생성자를 갖게 될 것이다.

자신이 구현한 클래스의 생성자나 슈퍼클래스의 생성자나 프로그래머가 잘 판단해서 사용하면 된다.

다음 포스팅은 메서드나 생성자로 정보를 전달하는 방법에 대해 알아볼 것이다.

반응형