JAVA/JAVA 문법

JAVA : 생성자(Constructor)란?

신강희 2024. 6. 3. 11:19
728x90

< JAVA의 생성자(Constructor)란? >

 


# 자바에서 생성자(Constructor)는 객체가 생성될 때 호출되는 특별한 메서드로, 생성자는 클래스의 인스턴스를 초기화하는 데 사용됩니다. 생성자는 클래스 이름과 동일하며 반환 타입이 없습니다.

생성자의 주요 특징

  1. 클래스 이름과 동일: 생성자의 이름은 클래스의 이름과 동일해야 한다.
  2. 반환 타입 없음: 생성자는 반환 타입을 가지지 않는다. (심지어 void도 사용하지 X)
  3. 객체 초기화: 객체가 생성될 때 초기화 작업을 수행한다. 객체의 필드 값을 설정하거나 초기화할 때 주로 사용
  4. 자동 생성: 개발자가 생성자를 정의하지 않으면 자바 컴파일러가 기본 생성자(default constructor)를 자동으로 제공, 기본 생성자는 매개변수가 없으며, 객체를 기본 상태로 초기화

 

# 생성자와 메서드의 차이점

  • 이름:
    • 생성자: 클래스 이름과 동일.
    • 메서드: 개발자가 지정한 이름.
  • 반환 타입:
    • 생성자: 반환 타입이 없음.
    • 메서드: 반환 타입이 있음(void 포함).
  • 호출 시점:
    • 생성자: 객체가 생성될 때 호출.
    • 메서드: 객체가 생성된 후 명시적으로 호출.

 

# 코드로 작성해보자!

- 이클립스 실행후 Constructor 이라는 명칭으로 프로젝트 생성

- 프로젝트내에 src 에서 MemberMain, Member 라는 명칭으로 클래스 생성하여 작성

public class MemberMain {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		//객체 생성 = 메모리 공간 확보
		Member m1 = new Member();
		//데이터 저장
		m1.name = "홍길동";
		m1.tel = "010-1111-2222";
		m1.address = "인천 서구";
		
		//여러줄 쓰기가 귀찮다. 한줄로 하고 싶다 함수로 만들자
		Member m2 = new Member();
		m2.setMember("김나나", "010-2222-3333", "인천 서구 청라");
		
		//인간의 욕심은 끝이없다. 두줄도 귀찮은데 바로 데이터에 넣어주라.가 생성자
		Member m3 = new Member("아이유", "010-5555-6666", "인천 서구 가좌동");
		
		// CPU 동작도 생각해보자 이제 여기서 실행하면 메인함수가 먼저 실행되고 객체 생성시 스택과 힙에 메모리 생성
		// 이제 동작 함수가되면서 데이터를 스택에 먼저 저장하고 그뒤에 힙으로 분배
		// 함수가 끝나면 스택에 저장된 데이터는 삭제되고, 힙에있는 데이터만 남는다 이건 나중에 따로 처리해줘야됨 이게 가비지 컬렉터
	}

}

 

 

다음 게시글로 계속~!

 

반응형