반응형
class Glass(var content: Int, val capacity: Int){
val drink = "water"
fun readContent(){
println("잔 내 액체의 양은 $content ml입니다.")
println("잔 내 최대 허용 액체의 양은 $capacity ml입니다.")
}
fun calculateAmount(): Int {
return this.capacity - this.content
}
fun pour(wishAmount : Int){
if(wishAmount < calculateAmount()){
this.content += wishAmount
}
else {
this.content = capacity
}
}
}
class Bottle (var content: Int){
fun pourIntoGlass(glass : Glass) {
var possibleAmount = glass.calculateAmount()
if (this.content < possibleAmount) {
possibleAmount = this.content
}
this.content -= possibleAmount
glass.pour(possibleAmount)
}
fun readContent(){
println("병 내 액체의 양은 ${this.content} ml입니다.")
}
}
fun main(){
val glass1 = Glass(90,150)
val glass2 = Glass(50,80)
val bottle = Bottle(300)
println("물을 붓기 전")
glass1.readContent()
glass2.readContent()
bottle.readContent()
//물 붓는 중
bottle.pourIntoGlass(glass1)
println("물을 부은 후")
glass1.readContent()
bottle.readContent()
println()
bottle.pourIntoGlass(glass2)
glass2.readContent()
bottle.readContent()
}
결과
728x90
반응형
'언어 > Kotlin' 카테고리의 다른 글
Kotlin : Setter 와 Getter 1.5 (0) | 2022.10.12 |
---|---|
Kotlin : Setter 와 Getter (0) | 2022.10.12 |
Kotlin : ArrayList (배열 + 리스트) (0) | 2022.09.07 |
Kotlin : Objectreference (ft. Call by value) (0) | 2022.09.05 |
Kotlin : 클래스 (Class) (0) | 2022.09.02 |