ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 생성자(Constructor)
    백엔드/자바 2020. 8. 5. 15:09

    생성자란?

    인스턴스가 호출될 때 같이 호출되는 "인스턴스 초기화 메서드"이다.

     

    Car A = new Car();

     

    위와 같이 객체를 생성하는 명령어를 내리면 "Car()"에 해당하는 부분이 생성자 부분이다.

     

    생성자가 객체를 만드는 것이 아니라 객체가 만들어질 때 동시에 호출되서 고유의 역할을 실행하는 것이다.

    생성자의 조건

    - 생성자 이름은 생성자가 있는 클래스의 이름과 같아야 한다.

     

    - 생성자는 리턴값이 없다.

    생성자의 역할

    생성자는 설정에 따라서 아무것도 안하는 역할을 하기도 하고

     

    멤버 변수를 초기화하는 등 인스턴스 생성시 호출되어

     

    다양한 작업을 자동으로 호출과 동시에 실행하게 만들 수 있다.

    생성자의 종류

    기본 생성자(default constructor)

    매개 변수가 없는 아무 기능도 없는 생성자를 말한다.

     

    단순하게 해당 클래스에 객체를 생성하면 호출만 되고 끝나는 아무 기능도 없는 생성자다.

     

    사실 따로 표기하지 않아도 자동으로 생성되게 설정되있으며,

     

    만약 다른 생성자를 생성했다면 자동으로 생성되지 않는다.

     

    아래와 같이 기본 생성자를 미리 설정해두어도 되고 하지 않아도 컴파일러가 기본적으로 제공하게 된다.

     

    기본 생성자를 설정시 안에 다양한 명령을 내리면 객체 생성 동시에 해당 명령을 수행한다.

     

    기본 생성자 설정 코드

    class Mother{
    	
    	Mother(){}  // 기본생성자
    	
    }

     

     

    매개 변수가 있는 생성자

    생성자를 통해서 더 다양한 기능을 하고 싶다면 매개변수가 있는 생성자를 만들 수 있다.

     

    객체를 생성시 데이터를 입력하면 해당 데이터를 받아서 생성자를 통해 다양한 작업을 할 수 있다.

     

    아래 코드와 같이 두 정수를 받아서 합한 뒤에 멤버 변수에 더하거나 생성자를 만들면서

     

    다른 클래스의 생성자를 만드는 등의 다양한 기능을 인스턴스 생성과 동시에 할 수 있다.

     

    매개변수를 받는 생성자 설정 코드

    class Son extends Mother{
    	int score = 0;  // 멤버변수 score
    	
    	Son(int a, int b){  // 자식 클래스의 매개변수를 받는 생성자 생성
    		this.score = a+b;  // 매개변수를 받아서 더해준다음 멤버변수 score에 저장
    	};
    }

    '백엔드 > 자바' 카테고리의 다른 글

    상속과 다형성(polymorphism)  (0) 2020.08.05
    초기화  (0) 2020.08.05
    클래스 / 메소드 오버라이딩(method overriding)  (0) 2020.07.28
    클래스의 super와 super()  (1) 2020.07.28
    클래스의 상속(inheritance)  (0) 2020.07.28
Designed by Tistory.