GDSC HUFS 3기/Android with Kotlin Team 6

[6팀] Udemy - Android with Kotlin Section 7 : Object Oriented Programming (1)

신형철 2021. 10. 5. 16:08

이 글은 udemy 강의를 참고하여 작성하였습니다.

작성자 : 박현빈

개발환경은 Windows, Android Studio입니다.


1. class

클래스 멤버는 생성자, 변수, 함수, 클래스로 구성되어있다.

class User {}

class User 부분은 클래스의 선언부이고, { } 중괄호 영역은 본문이다.

다른 언어와 다르게 코틀린에서는 classnew라는 키워드를 사용하지 않는다.

 

변수의 종류는 2가지로 var, val이있다.

var : 변하는 값이다.

val : 초기값 할당 이후 변경할 수 없는 값으로 처음 할당한 값으로만 이용 가능하다.

 

 

2. getters & setters

클래스 안에 get()set() 같은 속성 접근 메서드를 직접 작성 가능하다.

class User {
	var name
        set(value) {
            :
        }
        get {
            :
            return field
        }

 

변수의 범위를 제한하는데 set함수 활용 가능하다.

var – 게터와 세터 모두 생성 가능하다.

val – 초기값에서 값을 변경할 수 없으므로 게터만 내부적으로 사용 가능하다.

 

 

3. public, privaty, protected, internal – 접근제한자

패키지 기준

public : 디폴트 값, 어디에서나 사용 가능하다.

private : 해당 코틀린 파일 내부에서만 사용 가능하다.

internal : 같은 모듈안이라면 사용 가능하다.

 

클래스 기준

public : 디폴트 값, 어디에서나 사용 가능하다.

private : 클래스 내부에만 접근 가능하다.

protected : 클래스와 같지만, 서브클래스에도 접근 가능하다.

internal : 같은 모듈내에 접근 가능하다.

 

 

4. constructor

생성자 : 주 생성자와 보조생성자로 구분한다.

한 클래스 안에 주 생성자만 선언할 수도 있고, 보조 생성자만 선언할 수도 있다.

주생성자의 본문은 init을 사용한다.

Init

클래스 안에서 init 키워드로 지정한 영역은 자동으로 생성하고, 매개변수가 없고 반환값이 없는 함수이다. init 블록에서는 생성자를 통해 넘어온 매개변수에 접근 가능하다.

 

보조생성자와 주생성자의 연결  

 class User(name : String) { 
 	var time : String = "To be decided"
	
	constructor(name : String, count : Int) : this(name) {
	this.time = time
}

코틀린에서는 모든 주 생성자와 보조생성자의 연결이 필요하다.

클래스 내에 주 생성자가 있다면 this() 구문을 이용하고, 보조생성자 선언부분에 명시해야한다.