Kotlin / Метод, который должен вызываться из тела другого метода
Мне как-то нужно сделать, чтобы метод check вызывался из тела метода setPressure после накачки колеса и устанавливать значение для pressure не в конструкторе, а в методе setPressure.
Вот первоначальный код:
class Wheel(private val pressure: Double = 0.0) {
class TooHighPressure: Exception("Pressure is too high !" +
"\n" + "Нельзя эксплуатировать !")
class TooLowPressure: Exception("Pressure is too low !" +
"\n" + "Нельзя эксплуатировать !")
class IncorrectPressure: Exception("Pressure value is too high or negative !" +
"\n" + "Нельзя эксплуатировать !")
fun setPressure (){
if (pressure < 0 || pressure > 10){
throw Wheel.IncorrectPressure()
}
}
fun check() {
if (pressure < 1.5 && pressure > 0)
throw Wheel.TooLowPressure()
else if (pressure > 2.5 && pressure < 10)
throw Wheel.TooHighPressure()
else if (pressure < 0 || pressure > 10)
throw Wheel.IncorrectPressure()
else if (pressure != 2.0 && pressure >= 1.5 && pressure <= 2.5)
println("Pressure is permissible")
else if(pressure == 2.0)
println("Pressure is normal")
}
}
fun main() {
try {
val wheelWithPermissiblePressure = Wheel(pressure = 1.8)
println("Произошла накачка колеса")
wheelWithPermissiblePressure.check()
println("Можно эксплуатировать")
}
catch (t: Throwable){
println(t.message)
}
try {
val wheelWithNormalPressure = Wheel(pressure = 2.0)
println("Произошла накачка колеса")
wheelWithNormalPressure.check()
println("Можно эксплуатировать")
}
catch (t: Throwable){
println(t.message)
}
try {
val wheelWithIncorrectPressure = Wheel(pressure = -1.0)
println("Произошла накачка колеса")
wheelWithIncorrectPressure.check()
println("Можно эксплуатировать")
}
catch (t: Throwable){
println(t.message)
}
}