세상에 이상을 더하다.

지금, Rooti와 함께라면.

Rooti는 상상을 만드는 공방입니다.

Lecture/Java

생성자( Constructor ), 변수 유효 범위

nanun_u.l_0 2023. 1. 23. 14:23

 

전에 배운 선언과 동시에 인스턴스화를 할 때 어떻게 하였는가?

 


 

생성자의 개념

 

그런데 뒤에 (클래스명) ( ); 이게 무엇일까? 메서드 같기도 하고..

그런데 클래스명과 같은 이름을 가지는 메서드인가??

이것이 지금 배울 '생성자'라는 것이다. 생성자란 클래스를 생성할 때 사용하는

Person(), Burger()과 같은 메서드를 의미하고 이들이 하는 일은 클래스를 처음 만들 때 멤버 변수를 초기화하는 것이다.

 

변수 유효 범위

Do it! 자바프로그래밍 입문(박은종), 6-4 변수 유효 범위

이번 기회에 변수 유효 범위에 대해서도 알아보면 되겠다 ^^

 

디폴트 생성자( Default Constructor )

 

 Person(), Burger() 와 같이 괄호 안에 아무것도 넣지 않은 생성자를 디폴트 생성자라고 한다.

정확히 말하면 각 클래스에 생성자에 관한 내용을 아무것도 적지 않더라도 기본적으로 자바 컴파일러에서 만들어주는 생성자라고 하여 디폴트 생성자라고 부르는 것이다.

 

 

물론 public Person() {} 을 통해서 디폴트 생성자의 꼴을 적어줘도 상관이 없다.

 

생성자 만들기

 

생성자의 개념에 대해 알아볼 때 설명을 한 것처럼 생성자는 클래스의 모양을 가진 인스턴스 내부에 가지고 있는 멤버변수(인스턴스 변수)를 초기화해주는 메서드로, 디폴트 생성자의 경우 인스턴스 변수의 데이터 타입별로 초기화가 되고 우리가 직접 생성자를 만들 때 특정한 하나의 값으로 초기화를 하고 싶다면 생성자를 직접 만들면 되는 것이다.

생성자를 만들 때 주의할 점 : 앞에서도 알 수 있듯이 클래스의 이름과 같아야 하고 반환값이 없다.

 

( 수정사항 --> String[ ] coupons = new String[2]; )

 

여기서 this는 this 예약어라고 부르며 "지금 이 순간", 만들어지고 있는 "인스턴스" 그 자체를 의미한다. 즉, 자신의 메모리에 접근한다는 것이다.( this 예약어는 나중에 다시 다룰 것이다.)

생성자를 활용하면 코드가 훨씬 간단해지는 것을 알 수 있다.

 

생성자 사용 전
생성자 사용 후

 

반응형