Kotlin : 중간점검

언어/Kotlin

Kotlin : 중간점검

해리누나 2022. 10. 11. 21:47
반응형
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