Java/Java Concept

생성자 개념

SeungbeomKim 2022. 7. 4. 20:59

생성자(constructor)

자바에서는 객체의 생성과 동시에 인스턴스 변수를 원하는 값으로 초기화할 수 있는 생성자(constructor)라는 

메소드를 제공한다.

생성자 이름 = 클래스 이름

Car 클래스의 생성자 이름 => Car

 

생성자의 특징

1.생성자는 반환값이 없지만, 반환타입을 void형으로 선언하지 않는다.

2.생성자는 초기화를 위한 데이터를 인수로 받을 수 있다.

3.객체를 초기화하는 방법이 여러개 있을 때는 하나의 클래스가 여러개의 생성자를 가질 수 있다.(매개변수가 여러 개 일때),메소드 오버로딩이 가능하다.

ex)

Car(String modelName) {}

Car(String modelName, int modelYear) {}

Car(String modelName, int modelYear, String color) {}

Car(String modelName, int modelYear, String color, int maxSpeeds) {}

생성자 선언 문법

1. 클래스이름(){} // 매개변수가 없는 생성자 선언

2. 클래스 이름(인수1, 인수2...){} // 매개변수가 있는 생성자 선언

 

Car 클래스의 생성자 선언

Car(String modelName, int modelYear, String color, int maxSpeeds) {

    this.modelName = modelName;

    this.modelYear = modelYear;

    this.color = color;

    this.maxSpeed = maxSpeed;

    this.currentSpeed = 0;

}

생성자의 호출

class Car {

    private String modelName;

    private int modelYear;

    private String color;

    private int maxSpeed;

    private int currentSpeed;

 

    Car(String modelName, int modelYear, String color, int maxSpeed) {

        this.modelName = modelName;

        this.modelYear = modelYear;

        this.color = color;

        this.maxSpeed = maxSpeed;

        this.currentSpeed = 0;

    }

 

    public String getModel() {

        return this.modelYear + "년식 " + this.modelName + " " + this.color;

    }

}

 

public class Method02 {

    public static void main(String[] args) {

        Car myCar = new Car("아반떼", 2016, "흰색", 200); // 생성자의 호출

        System.out.println(myCar.getModel()); // 생성자에 의해 초기화되었는지를 확인함.

    }

}

new 키워드를 이용하여 객체를 생성할 때 자동적으로 생성자를 호출한다.

 

기본생성자

문법

클래스이름(){} =>매개변수형이 없는 생성자를 기본 생성자라고 하며, 자바 클래스 내에서 생성자를 선언하지 않는다면, 기본 생성자가 내재되어 있다.

기본생성자의 호출

class Car {

    private String modelName = "소나타";

    private int modelYear = 2016;

    private String color = "파란색";

 

    public String getModel() {

        return this.modelYear + "년식 " + this.color + " " + this.modelName;

    }

}

 

public class Method03 {

    public static void main(String[] args) {

        Car myCar = new Car();                // 기본 생성자의 호출

        System.out.println(myCar.getModel()); // 2016년식 파란색 소나타

    }

}

참고자료

http://www.tcpschool.com/java/java_methodConstructor_constructor

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com

 

'Java > Java Concept' 카테고리의 다른 글

메소드 오버로딩  (1) 2022.07.04
this와 this()  (1) 2022.07.04
메소드 개념  (0) 2022.07.04
클래스 선언  (1) 2022.07.04
Java 클래스 개념  (1) 2022.06.17