Java/Java이론

생성자

P_eli 2023. 10. 25. 21:12
728x90
반응형

생성자 (Constructor)란?

자바 프로그래밍에서, 생성자(Constructor)는 클래스의 인스턴스를 초기화하는 데 사용되는 특별한 종류의 메서드입니다. 생성자는 객체가 생성될 때 자동으로 호출되며, 객체의 초기화 작업을 처리합니다. 이것은 주로 객체의 멤버 변수를 설정하거나 초기 상태를 정의하는 데 사용됩니다.

기본 생성자 (Default Constructor)

클래스를 정의할 때 생성자를 명시적으로 작성하지 않는다면, 자바는 기본 생성자를 제공합니다. 기본 생성자는 매개변수를 가지지 않으며 아무 동작도 수행하지 않는 생성자입니다.

 

public class MyClass {
    // 기본 생성자
    public MyClass() {
        // 아무 동작도 하지 않음
    }
}

매개변수가 있는 생성자 (Parameterized Constructor)

클래스를 정의할 때 생성자를 직접 작성하면, 다양한 매개변수를 받아들이는 생성자를 만들 수 있습니다. 이러한 생성자를 통해 객체를 생성하면서 초기 데이터를 설정할 수 있습니다.

 public class Person {
    private String name;
    private int age;
    
    // 매개변수가 있는 생성자
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

생성자 오버로딩 (Constructor Overloading)

자바에서는 클래스 내에 여러 개의 생성자를 정의할 수 있습니다. 이를 생성자 오버로딩이라고 합니다. 생성자 오버로딩을 사용하면 다양한 매개변수 조합에 대응하는 생성자를 제공할 수 있습니다.

public class Book {
    private String title;
    private String author;
    
    // 생성자 오버로딩
    public Book(String title) {
        this.title = title;
    }
    
    public Book(String title, String author) {
        this.title = title;
        this.author = author;
    }
}

this 키워드

생성자 내에서 멤버 변수와 생성자의 매개변수 이름이 같을 때, 멤버 변수에 접근하기 위해 this 키워드를 사용할 수 있습니다. this 키워드는 현재 객체를 가리키는 참조를 의미합니다.

public class Student {
    private String name;
    
    // 생성자에서 this 키워드 사용
    public Student(String name) {
        this.name = name;
    }
}

생성자의 호출

객체를 생성할 때 생성자는 new 키워드와 함께 호출됩니다.

Person person1 = new Person("Alice", 25);
Book book1 = new Book("Java Programming");

예제코드 입니다.

class Book 
{
    String title;
    int price;
    int num = 0;

    // 디폴트 생성자에 기능 부여
    Book() 
    {
        title = "자바 프로그래밍 입문";
        price = 30000;
    }

    // 생성자의 오버로딩
    Book(String t, int p) 
    {
        title = t;
        price = p;
    }

    void print() 
    {
        System.out.println("제    목 : " + title);
        System.out.println("가    격 : " + price);
        System.out.println("주문수량 : " + num);
        System.out.println("합계금액 : " + price * num);
    }
}

public class ConstructorUse
{
    public static void main(String[] args)
    {
        Book book1 = new Book(); // 디폴트 생성자 사용
        book1.print();
        
        Book book2 = new Book("자바스크립트 입문", 35000); // 오버로딩된 생성자 사용
        book2.num = 10;
        book2.print();
    }
}

실행 결과

 

결론

자바 생성자는 클래스의 객체를 초기화하는 데 중요한 역할을 합니다.

생성자를 사용하여 객체의 상태를 설정하고 원하는 초기화 작업을 수행할 수 있습니다.

생성자는 객체 지향 프로그래밍에서 중요한 개념 중 하나이며, 자바 프로그램의 핵심 부분 중 하나입니다.

생성자의 사용은 객체 지향 프로그래밍의 핵심 원칙 중 하나인 캡슐화를 지원하며, 객체의 유효한 상태를 보장하는 데 도움을 줍니다.

따라서 자바 프로그래머로서 생성자를 잘 이해하고 활용하는 것이 중요합니다.

728x90
반응형