클래스

하승진·2024년 7월 27일
0
post-thumbnail

클래스

: 값과 그 값을 사용하는 기능들을 묶어놓은 것
: 인스턴스를 만드는 틀이라는 점

  • 인스턴스 : 클래스를 이용해서 만들어 내는 서로 다른 속성의 객체를 지칭하는 용어

구성

  • 속성 : 고유의 특징값을 담는 변수
  • 함수 : 기능을 구현

여기서 인스턴스는 a, b, c를 의미하는 것이고,
클래스는 Person임을 알 수 있다.

인스터스 참조로 클래스 사용

인스턴스로 선언한 객체 a를 사용하기 위해서는 a.birthYear과 같이 참조변수로 접근

함수

하지만 이렇게 하나하나를 println으로 출력하기에는 너무 비효율적이다.
이러한 반복적인 일들을 하는 동작은 함수로 정의를 내려서 사용하면 좀 더 효율적으로 기능 수행이 가능하다.
그래서 클래스 내에 함수를 넣어주면 모든 객체를 참조하게 된다.

이러한 방식으로 진행하면 함수 내 println 정의로 다른 모든 인스턴스 객체들이 참조로 접근하게 되어 사용하게 된다.

생성자

: 새로운 인스턴스를 생성하기 위해 호출하는 특수한 함수

기능

  • 인스턴스의 속성을 초기화
  • 인스턴스 생성시 구문을 수행 -> init

init

: 파라미터나 반환형이 없는 특수한 함수
: 생성자를 통해 인스턴스가 만들어 질 때 호출되는 함수

Person에 대한 생성자로 name과 birthYear에 대한 속성을 초기화를 하고,
init을 통해 인스턴스가 생성 시 호출되어 출력문이 나오는 것이다.

  • 여기서 this란?
    : 인스턴스 자신의 속성이나 함수를 호출하기 위해 클래스 내부에서 사용되는 키워드

보조 생성자

: 기본 생성자와 다른 형태의 생성자를 제공하여 인스턴스를 생성시 편의를 제공하거나 추가적인 구문을 수행하는 기능을 제공하는 역할

주의할 점

: 반드시 보조 생성자(constructor)를 만들 때는 기본 생성자를 통해 속성을 초기화 해줘야 한다.

이미지와 같이 이름으로만 구성된 Person객체에 대하여 접근할 때에는 보조 생성자를 통하여 name에 대해서만 파라미터로 받고, this를 통해 기본 생성자의 birthYear 속성을 1997로 고정 초기화하여 생성한 것을 알 수 있다.

따라서 보저 생성자 생성 시 this로 기본 생성자의 파라미터에 해당 값들이 적용되어 init으로 구문을 수행 후 마지막에 출력문으로 사용됨을 알 수 있는 것이다.

정리

기본 생성자와 보조 생성자는 클래스를 사용하는 사람에게 다양한 방법으로 인스턴스 생성하는 법을 제시함으로써 편의를 제공하는 기능이다.

profile
기어갈지언정 한 발자국씩이라도 가보자

0개의 댓글