728x90
반응형

생성자(constructor)

 - 객체가 생성될 때에 변수에게 초기값을 제공하고 필요한 초기화 절차를 실행하는 메서드

 - 인스턴스 변수를 초기화하는것이 목적이다. 하나의 변수를 동시에 여러개의 값으로 초기화할 수 있다.

 - 일반 객체르,ㄹ 생성하였을 경우에는 아무것도 없는 맨얼굴의 객체를 생성하는 것이고, 생성자를 사용하면 꾸며진 객체를 생성할 수 있고 또한 매개변수에 따라서 서로 다른 모양의 객체를 생성할 수 있다.


생성자의 특징

 - 인스턴스가 생성될 때마다 호출되는  '인스턴스 변수의 초기화 메서드'

 - 인스턴스 변수의 초기화 또는 인스턴스 생성시 실행할 작업에 사용

 - 몇가지 조건을 제외하고는 메서드와 같다.

 - 모든 클래스에는 반드시 하나 이상의 생성자가 있어야 한다.

 - 생성자 역시 메서드처럼 클래스 안에 선언되고 구조도 메서드와 유사하지만, 리턴값이 없다는 점이 다르다. 리턴값이 없어도 void키워드는 사용하지 않는다.


생성자의 조건

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

 - 생성자는 리턴값이 없다. 하지만 void를 쓰지 않는다.


      클래스이름 (타입 변수명, 타입 변수명, ...) {

                인스턴스 생성시 수행될 코드

                주로 인스턴스 변수의 초기화 코드를 적는다.

      }

            ↓↓↓

     class Card {

             Card() {                                      //매개변수가 없는 생성자

                   인스턴스 초기화 작업

              }

             Card(String kind, int number) {     //매개변수가 있는 생성자

                   인스턴스 초기화 작업

             }

     }



<생성자>




디폴트 생성자(default constructor)

 - 매개변수가 없는 생성자

 - 클래스에 생성자가 하나도 없으면 컴파일러가 기본 생성자를 추가한다.

    ( 생성자가 하나라도 있으면 컴파일러는 기본 생성자를 추가하지 않는다.)

 

형식 : 클래스이름() { }

 //컬파일러에 의해 추가된 Card클래스의 기본생성자. 내용이 없다.

 Card() { }

※ 모든 클래스에는 반드시 하나 이상의 생성자가 있어야 한다.


<디폴트 생성자 1>




 <디폴트 생성자 2>

생성자가 하나라도 정의되어 있으면 디폴트 생성자는 만들어지지 않는다.




<디폴트 생성자 3>







매개변수가 있는 생성자



※ 인스턴스를 생성한 후 인스턴스 변수의 값을 변경하는 것보다, 매개변수를 있는 생성자를 사용하는 것이 코드를 보다 간결하고 직관적으로 만든다.


<매개변수 있는 생성자>

728x90
반응형

+ Recent posts