반응형
< JAVA의 생성자(Constructor)란? >
# 자바에서 생성자(Constructor)는 객체가 생성될 때 호출되는 특별한 메서드로, 생성자는 클래스의 인스턴스를 초기화하는 데 사용됩니다. 생성자는 클래스 이름과 동일하며 반환 타입이 없습니다.
생성자의 주요 특징
- 클래스 이름과 동일: 생성자의 이름은 클래스의 이름과 동일해야 한다.
- 반환 타입 없음: 생성자는 반환 타입을 가지지 않는다. (심지어 void도 사용하지 X)
- 객체 초기화: 객체가 생성될 때 초기화 작업을 수행한다. 객체의 필드 값을 설정하거나 초기화할 때 주로 사용
- 자동 생성: 개발자가 생성자를 정의하지 않으면 자바 컴파일러가 기본 생성자(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 동작도 생각해보자 이제 여기서 실행하면 메인함수가 먼저 실행되고 객체 생성시 스택과 힙에 메모리 생성
// 이제 동작 함수가되면서 데이터를 스택에 먼저 저장하고 그뒤에 힙으로 분배
// 함수가 끝나면 스택에 저장된 데이터는 삭제되고, 힙에있는 데이터만 남는다 이건 나중에 따로 처리해줘야됨 이게 가비지 컬렉터
}
}
다음 게시글로 계속~!
728x90
반응형
'JAVA > JAVA 문법' 카테고리의 다른 글
JAVA : 클래스의 멤버변수에 데이터를 셋팅하는 방법 3가지 (getter/setter 함수) (1) | 2024.06.03 |
---|---|
JAVA : this로 사용하는 멤버변수와 접근제어자(Access) (0) | 2024.06.03 |
JAVA : 생성자 사용법과 생성자도 메소드 오버로딩 한다는것 (0) | 2024.06.03 |