[JAVA] Constructor 생성자

고민정·2024년 4월 3일

JAVA

목록 보기
6/32


🎇 Constructor 생성자

자바 코드에서 생성자는 무엇을 말할까요?

Car c1 = new Car();

위 코드에서 Car( ) 이 바로 생성자입니다.

( ) 안에 매개변수(Parameter) 가 아무것도 없는 것을 볼 수 있습니다.
이 처럼 매개변수가 없는 생성자를 기본 생성자 라고 합니다.

사용자가 생성자를 만들지 않으면 컴파일 시에 매개변수가 없는 기본생성자를 자동으로 만들어 줍니다.

단, 사용자가 생성자를 만들었을 시에는 기본생성자는 만들어지지 않습니다.


🎇 Constructor 생성자의 역할

생성자가 하는 일은 객체가 될 때 초기화 하는 역할입니다.
예시를 들어봅시다.


public class Student {
    String name;
    int studentId;

    //method has return type
    public void func1(String name, int id){
        String resultName = name.toLowerCase();
        String resultId = "10"+Integer.toString(studentId);

        System.out.println(resultName + " "+ resultId);
    }

    // Constructor has no return type
    // if you want to use in the Class StudentExam
    // you have to write down the name of student
    public Student(String n, int id){
        //value n pass on to the value name above
        name = n;
        studentId = id;
    }
}

앞의 글에서는 class 에 생성자를 따로 써주지 않았기 때문에 기본 생성자가 생성되었다.
따라서 인스턴스화 할 때는 매개변수를 쓰지 않고 사용했다.

//car class
public class Car{
...
}

public class CarExam{
	public static void main(String[] args){
    	Car c1 = new Car();
    }
}

하지만 Student 클래스는 기본 생성자를 사용 하는 것 이 아닌,
매개변수를 넘겨 받아야합니다.


public class StudentExam {
    public static void main(String[] args) {
        Student st1 = new Student("SARA",1234);
        /*Student st2 = new Student();*/

        st1.func1(st1.name, st1.studentId);
    }
}

st2 에 매개변수를 입력하지 않았을 때에는 Student 에 맞지 않기 때문에 오류가 뜨는 것을 확인할 수 있습니다.

이 부분을 유의하여 코드를 작성해 주시면 됩니다.

위의 코드를 실행하면 메소드와 생성자 모두 잘 작동하여 아래와 같은 결과가 나옴을 알 수 있습니다.

0개의 댓글