Kotlin自定义类方法调用求助:新手不知调用方式
Kotlin 温度转换类的调用与代码修正
你的代码存在两个核心问题:一是main函数仅打印提示,没有创建类实例并调用转换方法;二是tempConversion方法的参数被内部同名变量覆盖,逻辑冗余。下面是修正后的方案:
推荐方案:分离输入与计算逻辑
这种方式让输入、计算职责明确,更符合编程规范:
fun main() { println("Enter degrees in Fahrenheit") // 获取用户输入并转换为Double类型 val inputTemp = readln().toDouble() // 创建ComputeMethods类的实例 val tempConverter = ComputeMethods() // 调用转换方法,传入输入的温度值 tempConverter.tempConversion(inputTemp) } class ComputeMethods { // 接收华氏温度参数,完成转换并打印结果 fun tempConversion(degreesF: Double) { val degreesC = (degreesF - 32.0) * 5.0 / 9.0 val result = "$degreesF 华氏度 = $degreesC 摄氏度" println(result) } }
关键说明:
- 创建类实例:Kotlin中调用类的成员方法,必须先通过
类名()创建实例(空构造函数的括号可省略),比如val tempConverter = ComputeMethods()。 - 参数传递:把
main中获取的输入值传给tempConversion方法,方法内部直接使用参数计算,避免重复定义同名变量。 - 职责分离:输入逻辑放在
main入口,计算逻辑放在类方法中,代码更清晰易维护。
简化方案:方法内部处理输入
如果想让转换方法包揽提示、输入和计算,也可以这样写(适合简单场景):
fun main() { // 创建实例并直接调用方法 ComputeMethods().tempConversion() } class ComputeMethods { fun tempConversion() { println("Enter degrees in Fahrenheit") val degreesF = readln().toDouble() val degreesC = (degreesF - 32.0) * 5.0 / 9.0 println("$degreesF 华氏度 = $degreesC 摄氏度") } }
内容的提问来源于stack exchange,提问作者Gilli
相关产品推荐
相关产品推荐

