하루에 0.01%라도 성장하자

Develop/Android

Kotlin ) 코틀린 기초 Part#3 - 클래스 ( CLASS )

뚠님 2019. 6. 12. 13:29
반응형

Kotlin

 

클래스 ( class )
  • 선언
// 클래스 선언

class SampleClass{

}

// 인스턴스 생성

val sampleClass = SampleClass(); // new 키워드가 없음.

 

  • 생성자
class Student(var name : String){ // 빈 생성자

}

class Student{
    constructor(name : String){ // constructor를 이용해서 생성자 코드 작성
        println(name)
    }
}


class Student(name : String){
    init{ // init을 이용해서도 가능함. 클래스를 인스턴스화할 때 가장 먼저 실행되는 코드.
        println(name)
    }
}

 

프로퍼티

클래스의 속성을 사용할 때는 멤버에 직접 접근하고 이를 프로퍼티라고 한다.

 

// 클래스 선언
class Student(var name:String){

}

val student = Student("뚠님") // 생성
student.name = "뚠님입니다" // 쓰기
println(student.name) // 읽기

 

상속

코틀린에서 상속은 기본적으로 할 수 없음!

상속을 가능하게 하려면 'open' 키워드를 클래스 앞에 추가해야 한다.

 

open class Student{

}

class Person : Student() { // Student 클래스를 상속받은 Person 클래스

}


// 생성자가 있을 때

open class Student(name : String){

}

class Person(name : String) : Student(name) {

}

 

내부 클래스

내부 클래스 선언에는 inner를 사용한다.

내부 클래스는 외부 클래스의 참조를 가진다.

 

class FirstClass{
    var a = 10
    
    //내부 클래스
    inner class SecondClass {
        fun changeA(){
            a = 20
        }
    }
}

 

 

추상 클래스

추상클래스는 직접 인스턴스화할 수 없고 다른클래스가 상속하여 구현해야 한다.

 

abstract class FirstClass {
    abstract fun firstFunc()
    fun firstFunc(){
    
    }
}



class SecondClass : FirstClass(){
    override fun firstFunc(){
        println("하이이잉")
    }
}

val a = FirstClass() // 에러
val b = SecondClass() // 정상

 

반응형