클래스
클래스를 하나 만들어 보겠다
이렇게 필수적으로 필요한 파라미터를 받으면서 생성자를 바로 만들어 줄 수도 있고
클래스 내부에서 따로 생성자를 만들어도 된다
생성자가 더 필요한 경우에 대해 살펴보겠다
첫번째 방법으로 클래스를 만들었을 경우
추가적으로 생성자를 더 만드려면
기존에 있는 생성자를 이용하여 생성자를 만들면 된다
두번째 방법으로 클래스를 만들었을 경우는
이렇게 해도 생성자를 따로따로 만들어도 되고
기존에 있는 생성자를 활용해도 된다
생성자 변수에 대해
생성자 파라미터를 선언할 때
var나 val로 선언해주지 않으면
그 변수들은 인스턴스에 남아있지 않게 된다
생성자안에 있는 지역변수가 된다고 보면 된다
var나 val로 선언을 해줘야
인스턴스 변수가 되는 것이다
위 생성자에서 val나 var의 차이는
아래 생성자처럼 인스턴스 변수에 파라미터로 받은 값을 대입해주는 과정의 차이라고 보면 된다
init
코틀린에는 init메소드가 있다
인스턴스가 만들어질 때 제일 먼저 호출되는 녀석이다
Chaining
함수에서 새로운 인스턴스를 리턴하고
메소드를 계속 이어나가면서 사용할 수 있다
Calculator클래스의 plus메소드는 덧셈 결과를 담은 새로운 Calculator인스턴스를 리턴하고 있고
메인 함수에서는 이를 이용하여 계속 plus 메소드를 호출하고 있다
이를 체이닝이라고 한다
set, get
클래스 멤버변수마다 setter와 getter가 숨겨져 있다
이를 set, get을 통해 설정해줄 수 있다
메인 함수에서 Calculator인스턴스를 만들고 plus를 이용해 값을 더하고 있는 상황이다
만약 initialValue가 10이 넘어가면 다시 0부터 시작하도록 setter함수를 만들고 싶으면
해당 변수 바로 밑에 들여쓰기를 하고 set함수를 사용하면 된다
value는 initialValue변수에 대입해준 값을 나타내고
field는 initialValue변수 자신을 의미한다
마찬가지로 getter를 설정해주고 싶으면 get함수를 사용하면 된다
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.