프로그래밍 언어/JAVA

생성자(constructor)

Minerva579 2024. 10. 10. 19:07
반응형

 

 

자바를 배우는 우리 머리 ㅎ

 

 

오늘은 머리가 상대적으로 덜? 깨지는 것을 알아보려고 한다.

 

그것은 바로!

오늘 이야기의 주인공!

 

생.성.자에 관해 이야기해 보고자 한다.

 

짝-짝-짝

 

자 그럼 본론으로 들어가자

생성자란? 클래스에서 객체를 생성할 때 자동으로 호출되는 메서드이다.

이 생성자의 역할은 객체의 초기 값을 초기화(설정)하는 데 사용이 된다.

 

따란! 잠.깐.만↑

여기서 잠깐 초기화란?

 

초기화란 변수를 선언 후 그 변수에 처음으로 값을 할당(입력)하는 과정을 뜻합니다.

 

다시~ 예시 코드

class Car {
    String color; // 자동차 색상
    String model; // 자동차 모델

    // 생성자
    public Car(String color, String model) {
        this.color = color; // 색상 초기화
        this.model = model; // 모델 초기화
    }

    // 자동차 정보 출력 메서드
    public void displayInfo() {
        System.out.println("모델: " + model + ", 색상: " + color);
    }
}

public class Main {
    public static void main(String[] args) {
        // 자동차 객체(인스턴스) 생성
        Car myCar = new Car("빨강", "뽀오오오오르쉥");
        myCar.displayInfo(); // 모델: 뽀오오오오르쉥, 색상: 빨강
    }
}
// 객체 생성시 new 키워드를 통해 호출되고 초기화할 데이터를 인자(입력값/매개변수)로 받을 수 있다.

 

쉽게 말해 저 생성자라는 통로(구멍)를 통해서 값을 넣어준다고 생각하면 된다.

 

어허.... 아직. 이 생성자를 왜? 꼭, 써야 할지 이해가 안 되신다구요?

 

하하!

그것은 바로 캡슐화와 관련이 있지요 (캡슐화 잘 모른다면 이전 글 객체지향 읽고 오기)

 

자자 우리 클래스의 두개의 구멍 기본 생성자와 파라미터(매개변수)생성자 예시를 보도록 합시다.

class Car {
    private String color; // 자동차의 색상
    private String model; // 자동차의 모델

    // 기본 생성자
    public Car() {
        this.color = "흰색"; // 기본 색상 : 우리가 무슨 민족입니까 백의의 민족 아닙니까?
        this.model = "기본 모델"; // 기본 모델
    }

    // 파라미터 생성자
    public Car(String color, String model) {
        this.color = color; // 색상 초기화
        this.model = model; // 모델 초기화
    }

    // 정보 출력 메서드
    public void displayInfo() {
        System.out.println("모델: " + model + ", 색상: " + color);
    }
}

public class Main {
    public static void main(String[] args) {
        Car defaultCar = new Car(); // 기본 생성자 사용
        defaultCar.displayInfo(); // 출력: 모델: 기본 모델, 색상: 흰색

        Car customCar = new Car("빨강", "뽀르르르르쉐"); // 파라미터 생성자 사용
        customCar.displayInfo(); // 출력: 모델: 뽀르르르르쉐, 색상: 빨강
    }
}

 

자. 기본 생성자를 사용해서 출력한다면 기본생성자를 통해 초기화 된 변수 값이 출력된다.

반대로,

파라미터 생성자를 사용하면 사용자가 직접 생성자를 통해

변수의 값을 새로 할당해서 초기화 할 수 있게 되는 것이다.

 

이 때 유효성 검사를 위한 메서드를 만들어(if문 사용)

car class 에서 객체에 초기화 될 데이터에 잘못된 데이터가 들어오지 않도록 할 수 있다.

 

정리

1. 캡슐화는 데이터와 메서드를 하나로 묶고, 데이터에 대한 접근을 제어하는 개념이다.

2. 유효성 검사는 데이터 보호를 더욱 강화해 객체의 상태를 일관되게 유지하는 데 도움을 준다.

이는 캡슐화의 이점을 극대화 시키는 것이다.

반응형