[JAVA] 자바 클래스 내부 구성 - 생성자

    728x90

    안녕하세요

    로로봉입니다 : )

    오늘은 자바에서 클래스 내부 구성중 생성자에 대해 알아보겠습니다.

    생성자는 객체를 생성하는 역할을 하는 내부 구성요소입니다. 객체 내에 포함되는 필드의 초기화도 주로 생성자 내에서 처리합니다.


    1) 생성자 특징

    생성자는 반드시 클래스 명과 동일한 이름으로 지어야 합니다.

    메서드와 비슷한 구조를 지니고 있지만 리턴 타입이 없는 특징이 있습니다. void와 같이 리턴하지 않는다는 구조가 아닌 아에 리턴 타입이 없는 것을 말합니다.

    생성자 문법 구조는 아래와 같습니다.

    클래스명(입력매개변수) {
       ...
    }


     


    2) 기본 생성자의 자동 추가

    생성자는 따로 만들지 않는 경우 생성자를 포함하지 않는 클래스에게 컴파일러가 매개변수가 없는 기본 생성자를 추가해주어 생성자가 내부적으로 생성되어 객체를 생성할 수 있도록 도와줍니다.

    class Test {
       int a;
       void run() {
          ...
       }
    }

    위에 처럼 생성자를 포함하지 않고 클래스를 정의하는 경우 컴파일러가 자동으로 입력매개 변수가 없는 기본 생성자를 생성해줍니다.

    class Test {
       int a;
       void run() {
          ...
       }
       
       Test() {
       
       }
    }

    일반적으로는 생성자 안에서 필드를 초기화 해주지만 컴파일러가 생성해주는 기본 생성자는 내부가 비어있다고 보면 됩니다.

    생성자를 통해 객체를 생성할 수 있도록 해줍니다.


     


    3) 생성자와 객체의 생성 방법

    생성자 구조에 따라 객체를 생성하는 방법이 결정됩니다.

    어떤 클래스 안에는 기본 생성자만 있다면 기본 생성자로만 객체를 생성할 수 있습니다.

    int형 입력매개변수를 포함하고 있는 생성자만 있다면 int형 값을 입력으로 받아 생성자를 호출해야만 객체를 만들 수 있습니다.

    생성자도 메서드처럼 오버로딩을 할 수 있습니다. 즉 메서드처럼 생성자의 입력매개변수 자료형이나 개수의 따라 여러 개의 생성자를 정의할 수 있습니다.

    예를 들어 다음과 같이 클래스 Test에서 다른 내용의 생성자가 3개가 오버로딩되어 있다면 클래스 Test로 객체를 만드는 방법은 3가지가 존재하게 됩니다.

    class Test {
       Test() {
          System.out.println("첫 번째");
       }
       Test(int a) {
          System.out.println("두 번째");
       }
       Test(double b) {
          System.out.println("세 번째");
       }
    }
    
    public class JavaTest {
       public static void main(String[] args) {
          Test t1 = new Test();
          Test t2 = new Test(3);
          Test t3 = new Test(4.5);
       }
    }

     

    좋아요 ♥ + 구독 부탁드립니다 : )

    728x90
    반응형

    댓글