안녕하세요 Okoo입니다.
오늘 알아볼 코틀린 문법은 Class입니다.
Class는 객체지향의 언어에서 정말 주요한 역할을 하고 있습니다.
그 중 기본편을 준비해 보았습니다.
class 클래스이름 { 속성, 메서드 }
class를 정의하는 문법 입니다. Java와는 상당히 다르고 간결한 모습 입니다.
기본적으로 코틀린의 class의 경우에는 final속성을 가지고 있습니다.
1
2
3
4
5
6
7
8
|
class Humman constructor( name : String ){
var name = name
fun eattingCake(){
println("this is yammmmay~~~~~~~")
}
}
|
cs |
class를 선언해 보았습니다.
위의 constructor의 경우에는 생성자를 선언하는 방법입니다. (물론 생략이 가능합니다.)
1
2
3
4
5
6
7
8
|
class Humman1( name : String = "anonymous"){
var name = name
fun eattingCake(){
println("this is yammmmay~~~~~~~")
}
}
|
위의 anonymous의 경우에는 default 값을 선언해 준 것 입니다.
1
2
3
4
|
var humman = Humman1( name = "minsu")
var humman1 = Humman1()
//human = minsu
//human1 = anonymous
|
cs |
main에서 실행을 해보면 human1의 경우에는 default값이 anonymous로 나옵니다.
1
2
3
4
5
6
7
8
9
10
|
class Humman2( name : String = "anonymous"){
init {
println("new humman2 Class")
}
var name = name
fun eattingCake(){
println("this is yammmmay~~~~~~~")
}
}
|
cs |
여기에서 init의 경우에는 Java와 똑같은 역할을 합니다.
class가 생성되었을때 처음으로 실행되는 메서드로 이후 Humman2가 새로 정의 될때마다 "new humman2 Class"
가 실행이 됩니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
open class Humman3( name : String = "anonymous"){
constructor( name: String, age: Int) : this(name){
println("name is ${name}, and age is ${age}")
}
var name = name
fun eattingCake(){
println("this is yammmmay~~~~~~~")
}
open fun singASong(){
println("lalalala")
}
}
class Korea : Humman3(){
override fun singASong(){
super.singASong()
println("라라라라")
println("my name is ${name}")
}
}
|
cs |
이번 예제는 override와 overroading입니다.
위의 class에서 constructor에다 name을 this를 받고 age를 추가한 모습입니다.
Java에서는 이를 오버로딩 코틀린에서는 보조생성자로 정의하고 있습니다.
또한 위의 Korea클래스는 Humman3 클래스를 그대로 상속을 받아 사용되는 Korea클래스입니다.
여기서 주의 해야할 것은 코틀린의 클래스는 기본적으로 final이기 때문에 코틀린의 상속을 해주는 클래스의 경우에는
open을 붙여 클래스를 열어줘야 합니다.
상속받은 Korea클래스에서 singASong함수를 새로이 정의하고 싶다면
override를 써서 함수를 재정의 해 주되 super.메서드를 이용하면 상속받은 함수 그대로 이용할 수 있습니다.
'Android Studio > Android Studio(Kotlin)' 카테고리의 다른 글
코틀린의 조건문 if, for, when (0) | 2021.07.03 |
---|---|
코틀린 연산자 in (0) | 2021.07.01 |
코틀린 Nullable, NonNull, 엘비스 연산자와 notNull (0) | 2021.06.30 |
코틀린의 배열 Array와 List, ArrayList (0) | 2021.06.29 |
코틀린의 문자열 타입 String (0) | 2021.06.28 |