JAVA 프로그래밍

[JAVA] 풀스택 개발자 부트캠프 009일차 ④ constructor와 destructor

selfdailycoding 2025. 1. 7. 13:28

constructor

             생성자
             메소드(함수)
             class명과 같은 명칭의 함수
             return 값이 없음.
             다시 호출할 수 없음. (!= 초기화)
             기본 처리를 하는 경우가 많다.
             over load가 가능하다.
             class를 생성 시에 호출함.

 destructor

             소멸자
             현재는 사용 안함 -> 가비지 콜렉터


import cls.MyClass;

public class MainClass {
    public static void main(String[] args) {

        // int[] array = new int[5];
        int[] array = {1, 2, 3, 4, 5};

        // MyClass cls = { 1, "홍길동", 171.2 };

        // MyClass cls = new MyClass(1, "홍길동", 172.3, "01/03/05");

        /*
        MyClass cls = new MyClass();
        cls.setNumber(2);
        cls.setName("성춘향");
        cls.setHeight(157.3);
        cls.setBirth("00/05/17");

        System.out.println(cls.getHeight());
        System.out.println(cls.toString());
        */

        // MyClass cls = new MyClass("일지매", 180.2);
        MyClass cls = new MyClass();

        // cls();    생성자만 불러오는 것 안됨.
    }
}
package cls;

public class MyClass {
    private int number;
    private String name;
    private double height;
    private String birth;

    // 기본생성자
    public MyClass() {
        this(1000, "김성일", 172.5, "03/05/19");
        System.out.println("MyClass MyClass()");
    }

    public MyClass(String name, double height) {
        this();
        System.out.println("MyClass(String name, double height)");
        this.name = name;
        this.height = height;
    }

    public MyClass(int number, String name, double height, String birth) {
        System.out.println("MyClass(int number, String name, double height, String birth)");
        this.number = number;
        this.name = name;
        this.height = height;
        this.birth = birth;
    }

    public int getNumber() {
        return number;
    }

    public void setNumber(int number) {
        this.number = number;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double getHeight() {
        return height;
    }

    public void setHeight(double height) {
        this.height = height;
    }

    public String getBirth() {
        return birth;
    }

    public void setBirth(String birth) {
        this.birth = birth;
    }

    @Override
    public String toString() {
        return "MyClass{" +
                "number=" + number +
                ", name='" + name + '\'' +
                ", height=" + height +
                ", birth='" + birth + '\'' +
                '}';
    }
}