[Android] 04. 코틀린 객체지향 프로그래밍

 04. 코틀린 객체지향 프로그래밍


목차
  • 04-1 클래스와 생성자
    • 클래스 선언
    • 주 생성자
    • 보조 생성자
  • 04-2 클래스를 재사용하는 상속
    • 상속과 생성자
    • 오버라이딩 - 재정의
    • 접근 제한자
  • 04-3 코틀린의 클래스 종류
    • 데이터 클래스
    • 오브젝트 클래스
    • 컴패니언 클래스


04-1 클래스와 생성자

 클래스 선언

클래스 선언
  • 클래스는 class 키워드로 선언한다.
  • 클래스의 본문에 입력하는 내용이 없다면 { }를 생략한다.
  • 클래스의 멤버는 생성자, 변수, 함수, 클래스로 구성된다.
  • 생성자는 constructor 라는 키워드로 선언하는 함수이다.
객체 생성과 맴버 접근

  • 객체를 생성해 사용하며 객체로 클래스의 멤버에 접근된다.
  • 객체를 생성할 때 new 키워드를 사용하지 않는다.


 주 생성자

주 생성자 선언
  • 생성자를 주 생성자와 보조 생성자로 구분된다.
  • 주 생성자는 constructor 키워드로 클래스 선언부에 선언한다.
  • 주 생성자 선언은 필수는 아니며 한 클래스에 하나만 가능하다.
  • constructor 키워드는 생략할 수 있다.
주 생성자의 본문 - init 영역
  • 주 생성자의 본문 - init 영역
    • init 키워드를 이용해 주 생성자의 본문을 구현할 수 있다.
    • init 키워드로 지정한 영역은 객체를 생성할 때 자동으로 실행된다.
생성자의 매개변수를 클래스의 멤버 변수로 선언하는 방법
  • 생성자의 매개변수를 클래스의 멤버 변수로 선언하는 방법
    • 생성자의 매개변수는 기존벅으로 생성자에서만 사용할 수 있는 지역변수이다.
매개변수를 var나 val 키워드로 선언하면 클래스의 멤버 변수로 사용
  • 매개변수를 var나 val 키워드로 선언하면 클래스의 멤버 변수로 사용된다.


보조 생성자

보조 생성자
  • 보조 생성자는 클래스의 본문에 constructor 키워드로 선언하는 함수
  • 여러개를 추가할 수 있다.
보조 생성자에 주 생성자를 연결
  • 보조 생성자에 주 생성자를 연결한다.
    • 보조 생성자로 객체를 생성할 때 클래스 내에 주 생성자가 있다면 this()구문을 이용해 주 생성자를 호출해야 한다.
보조 생성자가 여럿일 때 생성자를 연결하는 방법
  • 보조 생성자가 여럿일 때 생성자를 연결하는 방법이다.


상속과 생성자

상속과 생성자
상속과 생성자

  • 코틀린에서 어떤 클래스를 상속받으려면 선언부에 콜론(:)과 함께 상속받을 클래스 이름을 입력한다.
  • 코틀린의 클래스는 기본적으로 다른 클래스가 상속할 수 없다.
  • 다른 클래스에서 상송할 수 있게 선언하려면 open 키워드를 사용한다.
  • 상위 클래스를 상속받은 하위 클래스의 생성자에서는 상위 클래스의 생성자를 호출해야만 한다.



오버라이딩 - 재정의

오버라이딩 - 재정의
  • 상속이 주는 최고의 이점은 상위 클래스에 정의된 멤버(변수, 함수)를 하위 클래스에서 자신의 맴버처럼 사용할 수 있다는 것이다.
상위 클래스에 선언된 변수나 함수를 같은 이름으로 하위 클래스에서 다시 선언하는 것을 오버라이딩
  • 상위 클래스에 선언된 변수나 함수를 같은 이름으로 하위 클래스에서 다시 선언하는 것을 오버라이딩이라고 한다.



접근 제한자

접근 제한자

  • 접근 제한자란 클래스의 멤버를 외부의 어느 범위까지 이용하게 할 것인지를 결정하는 키워드이다.

접근 제한자의 사용 예
접근 제한자의 사용 예
  • 접근 제한자의 사용 예이다.



데이터 클래스

데이터 클래스

  • 데이터 클래스 data 키워드로 선언
  • 데이터 클래스는 VO(데이터 전달) 클래스를 편리하게 이용할 수 있는 방법 제공
객체의 데이터를 비교하는 equals() 함수의 예
객체의 데이터를 비교하는 equals() 함수의 예
  • 객체의 데이터를 비교하는 equals() 함수의 예이다.
equals() 함수는 주 생성자에 선언한 멤버 변수의 데이터만 비교 대상
  • equals() 함수는 주 생성자에 선언한 멤버 변수의 데이터만 비교 대상으로 삼는다.
객체의 데이터를 반환하는 toString() 함수
  • 객체의 데이터를 반환하는 toString() 함수이다.
    • 데이터 클래스를 사용하면서 객체가 가지는 값을 확인해야 할 때 이용한다.



오브젝트 클래스

오브젝트 클래스
  • 오브젝트 클래스는 익명 클래스를 만들 목적으로 사용된다.
  • 선언과 동시에 객체를 생성한다는 의미에서 object라는 키워드를 사용하게 된다.
타입을 지정한 오브젝트 클래스
  • 오브젝트 클래스의 타임은 object 뒤에 콜론(:)을 입력하고 그 뒤에 클래스의 상위 또는 인터페이스를 입력한다.



컴패인언 클래스

컴패인언 클래스

  • 컴패니언 클래스는 멤버 변수나 함수를 클래스 이름으로 접근하고자 할 때 사용한다.
  • companion이라는 키워드로 선언한다.



마지막으로

 이번 단원에서는 클래스에 대해서 배워보았습니다. java나 c를 공부하신 분들에게는 그나마 쉬운 부분이었지만, 처음 접하시는 분들에게는 아주 생소한 내용일 수 있습니다. 중간 중간 VO 나 constructor 같은 키워드는 프로그래밍을 하신 분들에게도 익숙하지 않은 키워드들인데요. 좀 더 직관적이고 쉽게 사용할 수 있도록 만들어진 내용인 것 같습니다. 다음 단원 '코틀린의 유용한 기법'을 통해서 코틀린의 참 맛을 알아가 보도록 하겠습니다. 수고하셨습니다.






💬 한글학자 주시경('주보따리')

한글학자 주시경('주보따리')

주시경은 35세가 되어서야
비로소 이런저런 공부를 마칠 수 있었다.
그때는 1910년 불행하게도 나라가 일제에 패망한
해였다. 하지만 그는 절망에 빠지지 않고 민족정신을
바로 세우기 위한 국어 운동, 국어 연구와 교육을 통한
계몽 운동을 더욱 활발히 전개했다. 눈코 뜰 새 없이
바쁜 그를 두고 사람들은 '주보따리'라고 불렀다.
가방이 없던 시절, 보자기에 책을 싸서 우리말
한글을 가르칠 수 있는 곳이라면 어디든
마다하지 않고 찾아갔기 때문이다.


- 김슬옹의 《길에서 만나는 한글》 중에서 -


* 민족정신을 되찾는 길은
그 민족의 혼이 담긴 말과 글을 지키는 것입니다.
주시경 선생님같은 위대한 분들이 계셨기에 우리가
한글이라는 빛나는 문화유산을 잃지 않을 수 있게
되었습니다. 말과 글이 혼탁해지고 정체를 알 수
없는 신조어가 난무해, 세대간 소통조차 어려운
오늘날, 주시경님과 그분의 별명인
'주보따리'를 다시금 생각하게
됩니다.



댓글

이 블로그의 인기 게시물

[컴퓨터] Office 무료 설치

[컴퓨터] iptime 관리자계정 찾기 및 설정

[주식] 레버리지 ETF/ETN 사전교육 이수방법 및 등록