이 글은 유데미 강의 Android 12 및 Kotlin 개발 완전 정복을 참고하여 작성하였습니다.
작성자 : 송가현
개발환경은 Windows, Android Studio입니다.
1. 멤버변수
프로퍼티라고도 한다.
다음과 같이 작성할 수 있다.
fun main(){
var denis =Person("Denis", "Panjuta",31)
denis.hobby="to skateboard"
denis.age=32
println("Denis is ${denis.age} years old")
denis.stateHobby()
var john=Person()
john.hobby="play video games"
john.stateHobby()
}
class Person(firstName: String="John", lastName: String="Doe"){
var age:Int?=null //요기~!
var hobby:String="watch Netflix"
var firstName: String?=null
//Initializer Block
init{
this.firstName=firstName
println("Initialized a new Person object with"+"firstName = $firstName and lastName=$lastName")
}
//Member secondary Constructor
constructor(firstName: String, lastName:String, age:Int ):this(firstName,lastName){
this.age=age
println("Initialized a new Person object with"+"firstName = $firstName and lastName=$lastName and age=$age")
}
fun stateHobby(){
println("$firstName\'s hobby is $hobby")
}
//Member functions
}
2. 세터, 게터
코틀린에서 Setter Getter 은 자동으로 생성되어 사용이 된다.
단, 원하는 값으로 이것들을 이용하기 위해서는 custom을 쓰는데
Custom Getter / Custom Setter의 개념도 존재함을 알 수 있다.
class Car(){
val Brand:String="BMW"
get(){
return field.toLowerCase()
}
}
#위가 원하는 것으로 custom한 setter 형식
#아래는 원하는 것으로 custom한 getter 형식
class Car(){
var maxSpeed:Int=250
set(value){
field=if(value>0)value else throw illegalArgumentException("Maxspeed cannot be less than 0")
}
}
Private set은 클래스의 외부에서는 set을 할 수 없다. 클래스 내부에서만 set 가능.
만약, 외부에서 set했다면 에러가 발생한다.
보조생성자라는 것도 있다. 클래스 안에서 다음과 같이 선언한다.
constructor(firstName: String, lastName: String, age:Int):
this(firstName, lastName)
3. 데이터 클래스
data class User(val id:Long, var name:String)
데이터 클래스의 형태이다.
* getter, setter 디폴트로 생성 해준다.
4. 상속
클래스의 기능을 확장하고자 할 때, 상위 클래스에서 기능은 다 가져오고,
하위 클래스의 기능만을 따로 추가할 수 있음.
Any 클래스는 any 클래스에서 상속받는다.
상위 클래스를 ( Super Class, Parent Class, Base Class )
하위 (상속받는) 클래스를 ( Sub Class, Child Class, Derived Class) 라고 한다.
Open 한정자를 사용해 상속을 허용한다. -> open을 선언해야 자식 클래스가 참조해 사용할 수 있다.
EX)
Open class Beginner{
open fun attack(monster: Monster){
monster.hp-=10
}
}
이를 참조해 사용할 때 다음과 같이 구현 (오버라이딩) : var 형태도 override 적어주기
override fun attack(monster: Monster) {
super.attack(monster!!)
}
}
'GDSC HUFS 4기 > Kotlin Team #3' 카테고리의 다른 글
[3팀] Android-12-Kotlin : 키즈 드로잉 앱 (3) (0) | 2022.11.18 |
---|---|
[3팀] Android 12 : 키즈 드로잉 앱 (2) (0) | 2022.11.16 |
[3팀] Android-12-Kotlin : 키즈 드로잉 앱 (1) (0) | 2022.11.15 |
[3팀] Android-12-Kotlin : 퀴즈 앱 안드로이드 (0) | 2022.11.11 |
[3팀] 퀴즈 앱 안드로이드 12 - 질문모델생성과 UI모델 연결 (0) | 2022.11.05 |