首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >矩形方程

矩形方程
EN

Stack Overflow用户
提问于 2022-02-02 07:06:12
回答 1查看 167关注 0票数 0

我是Kotlin的初学者,在这个例子中是给我的。这很让人困惑。下面是我对此所做的代码:

代码语言:javascript
复制
import kotlin.math.sqrt

class Rectangle(val length: Double, val width: Double){


fun main(){
  print("Length: ")
  val length = input()
  print("Width: ")
  val width = input()
  val rect = Rectangle(length,width)
  rect.recDetails()
  print("\nNew area: ")
  var area = input()
  rect.area = area
  rect.recDetails()
}

private fun input() = readLine()!!.toDouble() 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-02 08:22:04

现在用户可以输入新的区域,我们需要重新计算长度和宽度,第一步是使它们成为var

在此之后,现在唯一需要的就是在设置新区域时计算新的长度和宽度。通过一些基本的数学,你可以发现:

代码语言:javascript
复制
Given area A, original length L and original width W:
newLength = sqrt(L*A/W) and newWidth = sqrt(W*A/L)   // keeping the L/W ratio fixed

只需在area设置器中使用这些

代码语言:javascript
复制
set(value: Double) {
    field = value
    val newLength = sqrt(value * length / width)
    val newWidth = sqrt(value * width / length)
    length = newLength
    width = newWidth
}

虽然我不喜欢为这样的计算修改better /setter,但是最好为更新区域创建一个适当的函数。但是,由于您专门要求使用getter/setter方法,所以它就在这里。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70951628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档