Kotlin? 4
공부용으로 작성하고 있는 글입니다. 가독성이 떨어지지만 혹시나 틀린 부분이 있거나, 더 알려주실 수 있는 부분이 있으시다면 댓글로 피드백 해주시면 정말 감사하겠습니다.
https://www.youtube.com/watch?v=Q5noYbbc9uc 를 참조해 작성하였습니다.
지난 글에 이어, 람다를 표현하는 여러 방법에 대해서 알아본다.
fun main(){
val lamda = {number : Double ->
number == 4.3213}
println(invokeLamda(lamda))
println(invokeLamda({it>3.22}))
}
fun invokeLamda(lamda : (Double) -> Boolean) : Boolean {
return lamda(5.2343)
}
//출력 결과
false
true
Data Class
fun main(){
val ticketA = Ticket("KoreanAir","yeongseo Yoon", "2022-01-11", 14)
print(ticketA)
}
data class Ticket(val companyName:String, val name : String, var date : String, var seatNumber: Int)
//toString(), hasCode(), equals(), copy()
//출력 결과
Ticket(companyName=KoreanAir, name=yeongseo Yoon, date=2022-01-11, seatNumber=14)
Companion Object
fun main(){
val book = Book.create()
println("${book.id} ${book.name}")
}
class Book private constructor(val id: Int, val name:String){
companion object BookFactory{
val myBook = "new book"
fun create() = Book(0,myBook)
}
}
//
companion object는 private property나 method를 읽어올 수 있고, 자바의 static과 같은 역할을 한다.
상속도 가능하다.
fun main(){
val book = Book.create()
val bookId = Book.BookFactory.getId()
println("${bookId} ${book.name}")
}
interface IdProvider{
fun getId() : Int
}
class Book private constructor(val id: Int, val name:String){
companion object BookFactory :IdProvider {
override fun getId() : Int{
return 444
}
val myBook = "new book"
fun create() = Book(getId(),myBook)
}
}
//출력 결과
444 new book
Object
object CarFactory{
val cars = mutableListOf<Car>()
fun makeCar(horsePower:Int) : Car {
val car = Car(horsePower)
cars.add(car)
return car
}
}
data class Car(val horsePower : Int)
fun main() {
val car = CarFactory.makeCar(10)
val car2 = CarFactory.makeCar(200)
println(car)
println(car2)
println(CarFactory.cars.size.toString())
}
//출력 결과
Car(horsePower=10)
Car(horsePower=200)
2
object는 싱글톤 패턴으로, 새로운 객체를 생성하지 않고 딱 한 번만 생성한다.
Author And Source
이 문제에 관하여(Kotlin? 4), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@l1127xpla/Kotlin-4저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)