본문 바로가기

Java기초

[Java 기초] 생성자

용어가 헷갈려서 한번 정리를 해 보려고 한다

 

- 객체 : 객체 지향 프로그램의 대상, 생성된 인스턴스

- 클래스 : 객체를 프로그래밍 하기 위해 코드로 정의해 놓은 상태

- 인스턴스 : new 키워드를 사용하여 클래스를 메모리에 생성한 상태

- 멤버 변수 : 클래스의 속성, 특성

- 메서드 : 멤버변수를 이용하여 클래스의 기능을 구현한 함수

- 참조 변수 : 메모리에 생성된 인스턴스를 가리키는 변수

- 참조 값: 생성된 인스턴스의 메모리 주소 값


생성자로 객체를 생성할 때는 new 키워드를 통해 생성을 한다.

생성자는 두 종류가 있는데

기본 생성자 (default constructor)와 사용자가 직접 구현한 생성자.

코드로 살펴보자

 

 

학생 클래스를 구현 하였다.

위의 사진은 Student 클래스이다. 

studentNumber, studentName, grade 등의 멤버 변수가 구현이 되어있고

showStudentInfo() 메서드도 구현이 되어 있다.

 

학생 클래스를 기반은로 생성된 인스턴스 studentLee, studentKim

생성자는 new 키워드를 통해 생성을 한다.

studentLee는 기본 생성자, studentKim은 사용자가 구현한 생성자이다.

여기서 주의할 점은 기본 생성자만 사용할 경우 Student 클래스에서 따로 생성자 구현을 하지 않아도 된다

즉 아래의 코드를 구현하지 않아도 된다는 것 이다.

public Student()
{

} // 기본 생성자(default constructor)

하지만 Student클래스 내부를 보면 아래의 생성자가 구현이 되어있음을 확인할 수 있다.

public Student(int studentNumber, String studentName, int grade) 
{
		
	this.studentNumber = studentNumber; // 
	this.studentName = studentName;
	this.grade = grade;
}

이렇게 사용자가 직접 생성자를 구현한 경우에는 기본 생성자를 '생성하지 않고' 사용할 수 없다.

그렇기에 사용자가 생성자를 구현하였을 경우 기본 생성자도 구현을 해 주어야 한다.