[자바] 용어정리 생성자

allnight5·2022년 11월 17일
0

자바 개념정리

목록 보기
1/28

생성자란 무엇인가

변수 int a를 선언하고 a=3;3으로 초기화 한다.
클래스도 변수처럼 초기화 해 줄 수 있다. 그초기화 대상은 인스턴스 변수이다.
생성자가 왜 필요하냐
생성자를 사용하는 방법을 알기 전에 왜 "클래스 초기화"라는 개념의 생성자를 사용해야 하는가?
각각의 인스턴스 변수에 접근해서 값을 넣어 주었다. 이 무슨 미련 곰탱이 같은 짓인가.
이러한 짓은 "객체 지향 프로그래밍"에 아주 적합하지 않은 행동이다.
객체 ( 클래스 ) 를 "지향" 한다는 건 적극적으로 활용하여 효율적이고 간단하게 만드는 건데 이건 거의 불법수준이다.

정의하자면 생성자란, 딱 한번만 호출이 되는 메소드 이다.

public 클래스명(초기화 할 변수){ 인스턴스 변수 초기화 명령문들}

생성자의 형식

보면 다른 메소드들과 다른 특징이 있다.
1. 클래스 이름과 동일한 이름을 가진 메소드
2. 반환형이 선언되어 있지 않으면서, 반환하지 않는 메소드

즉, 메소드 이름이 클래스명과 똑같고, void나 int 처럼 반환형이 선언되어 있지도 않고 , return 반환을 하지도 않는다. 입력만 있을 뿐 출력은 없다. 초기화만 해주는 것이다.

그리고 중요한 점은 , 생성자로 초기화 할 시 Final 변수도 메소드 안에서 딱 한번 초기화가 가능하다는 것이다. ( 초기화 메소드를 직접 만들었을 때는 오류가 났다 )

클래스명 참조변수 = new 클래스명(초기화 할 변수 데이터);

한 줄로 표현이 가능해졌다. 초기화 할 데이터 값을 괄호안에 적어주면 생성자 메소드로 전달 되어 초기화를 딱 한번 해주고 인스턴스가 생성이 된다.

new 클래스명;

이러한 명령어는 "인스턴스의 생성"을 뜻한다. 걍 생성을 한다는 거다.

new 클래스명();

괄호 부분은 생성자를 호출하는 부분이다. 비어있으면 디폴트 생성자를 호출하고, 프로그래머가 짜놓은 생성자가 있으면 데이터에 맞게 생성자를 호출한다.

즉, 괄호가 생성자 호출 부분이라는 것이다.
클래스는 생성자가 반드시 있어야 하므로 인스턴스를 생성 할 때 두 부분을 겹쳐서 생각하면 된다.
참조 : https://m.blog.naver.com/tnsehf12345/220530411249

profile
공부기록하기

0개의 댓글