728x90
[ Kotlin ] 기본문법 3 상속, 람다, 익명 함수
1. 상속
// 상속을 가능하게 하려면 open을 써야 한다
// 클래스, 변수, 함수 모두 open을 써야 한다
open class User1(name:String){ // 매개변수에 var를 붙여 멤버변수로 생성이 가능하다
open var name = "lee" // 멤버변수를 클래스 안에 생성 가능하다
//constructor(name:String){ // 생성자를 직접 넣거나
init{ // init 사용
println("specialUser.. ${this.name}.. $name")
this.name = name
println("specialUser.. ${this.name}.. $name")
//this.name = name
}
open fun someFun(){
println(name)
}
class someClass{
// 클래스 선언 가능
}
}
class specialUser(name:String):User1(name){ // User1을 상속받는다
override var name = "lee" // 부모의 멤버변수,함수 오버라이드 한다
override fun someFun() {
println("specialUser.. ${this.name}.. $name")
this.name = name
println("specialUser.. ${this.name}.. $name")
}
}
// 데이터 클래스는 데이터만 선언해준다.
// 코틀린만 가지고 있는 특징
// class dataClass(){} // 일반적인 클래스 선언과 다르다
data class dataClass(val name:String, val age:Int, val mail:String) // 데이터를 저장해주는 기능만 한다
////// 객체를 생성하지 않고 클래스로만 접근하고 싶을 때 /////////////
class User3{
companion object{
var data3 = 20
fun someFun3(){
println(data3)
}
}
}
fun main() {
println("Hello, world!!!")
var user1 = User1("kim")
user1.someFun()
val suser = specialUser("park")
suser.someFun()
val data1 = dataClass("mobile", 21, "ds@duksung.ac.kr")
println(data1.toString()) // 데이터 클래스의 값 출력
val obj = object{ // 클래스를 선언하지 않고 object로 사용하기
var data2 = 0
fun some(){
println(data2)
}
}
obj.data2 = 20 // 객체 생성하지 않아도 직접 접근 가능
obj.some()
// var user3 = User3()
User3.data3 = 30
User3.someFun3()
}
2. 익명함수
fun sum(n1:Int, n2:Int):Int{return n1+n2}
fun main(){
println("Hello, wolrd!!!")
println(sum(5,6))
// sum1을 함수 형태로 선언해 줬다 (익명함수 느낌)
// 함수 매개변수의 자료형을 지정해줄 수 있다
var sum1:(Int, Int) -> Int = {n1:Int, n2:Int -> n1+n2}
println(sum1(7,6))
// ?를 붙이면 null 값 허용
var data1:String? = null
data1 = "mobile" // null이 아닌 값만을 넣어 줘야한다
// !!를 붙이면 data1에 null이 들어가지 않도록 해준다
println(data1!!.length)
}
728x90
'Front-End > Kotlin' 카테고리의 다른 글
[Kotlin] 안드로이드 XML, 모듈 생성, View 속성 (2) | 2024.04.15 |
---|---|
[Kotlin] build.gradle, MainActivity.kt, activitiy_main.xml (2) | 2024.04.14 |
[Kotlin] 코틀린 언어 소개 (1) | 2024.04.13 |
[ Kotlin ] 기본문법 2 조건문, 반복문, 객체지향 (1) | 2024.04.05 |
[ Kotlin ] 기본문법 입출력, 자료형, 함수, 배열 (1) | 2024.04.03 |