当前位置: 首页 > 知识库问答 >
问题:

这意味着什么(此方法将在otherUnit中返回一个新的Temperature对象,而不改变当前对象。)

程和畅
2023-03-14

要创建温度转换器,我想知道在otherunit中返回newtemp对象意味着什么?

实现一个名为Temperature的类,它表示以华氏或摄氏为单位的温度。允许度数有小数位(如double)并使用枚举来存储单位。用可能的值摄氏、华氏和开尔文命名枚举temperatureunit。具体地说,Temperature类具有以下实例变量(也称为字段或数据):

(双倍)单位(TemperatureUnit-来自您创建的枚举)

Temperature类将具有以下方法:

创建新温度(给定度数和单位的值)[参数化构造函数]创建新温度(不给定参数-将温度初始化为0.0摄氏度)[默认构造函数]
创建新温度(从另一个温度)[复制构造函数]

getDegrees

getUnit

setDegrees

setUnit

convertTo(TemperatureUnit otherUnit)--此方法将一个单位的度数转换为另一个单位的度数(例如:华氏到摄氏),如果进行了转换,则返回true,否则返回false(唯一不进行转换的方法是单位相同(例如:华氏到华氏)inotherUnit(TemperatureUnit otherUnit)--此方法将在otherUnit中返回一个新的温度对象,而不更改当前对象。

这是我已经有的代码

public class Temperature {

    private double degrees;
    private TempUnit unit;

    public Temperature(double degrees, TempUnit unit) {
        this.degrees = degrees;
        this.unit = unit;
    }

    // default constructor
    public Temperature() {
        this.degrees = 0.0;
        this.unit = TempUnit.Celsius;
    }

    public Temperature(Temperature copyTemperature) {
        this.degrees = copyTemperature.degrees;
        this.unit = copyTemperature.unit;
    }

    public double getDegrees() {
        return this.degrees;
    }

    public TempUnit unit() {
        return this.unit;
    }

    public void setDegrees(double newDegrees) {
        this.degrees = newDegrees;
    }

    public boolean convertTo(TempUnit otherUnit) {
        if (this.unit == otherUnit) {
            return false;
        }
        if (this.unit == TempUnit.Celsius && otherUnit == TempUnit.Fahrenheit) {
            this.degrees = this.degrees * (9.0 / 5.0) + 32.0;
        } else if (this.unit == TempUnit.Celsius && otherUnit == TempUnit.Kelvin) {
            this.degrees += 273.15;
        } else if (this.unit == TempUnit.Fahrenheit && otherUnit == TempUnit.Celsius) {
            this.degrees = (this.degrees - 32.0) * 5.0/9.0;
        } else if (this.unit == TempUnit.Fahrenheit && otherUnit == TempUnit.Kelvin) {
            this.degrees = (this.degrees + 459.67) * 5.0/9.0;
        } else if (this.unit == TempUnit.Kelvin && otherUnit == TempUnit.Celsius) {
            this.degrees = this.degrees - 273.15;
        } else if (this.unit == TempUnit.Kelvin && otherUnit == TempUnit.Fahrenheit) {
            this.degrees = (this.degrees * 9.0/5.0) - 459.67;
        }
        this.unit = otherUnit;
        return true;
    }

    public boolean another(TempUnit otherUnit) {
        if (this.unit == otherUnit) {
            return false;
        }
        else
            return true;
    }

共有1个答案

杨俊茂
2023-03-14

本质上,otherunit方法将需要返回一个不同的temperate对象,该对象将在某个其他温度单元中具有等效的温度。otherunit本质上将是一个转换器,即给定对象的当前状态,它将返回一个具有不同值但与当前值相当的新对象。

因此,一个表示0摄氏度温度的物体可以被转换成另一个32华氏度的物体,而32华氏度的物体又可以被转换成272开尔文的物体。这意味着尽管对象具有不同的值,但给定上下文(即温度值和单位),它们都是等价的。

本质上,这意味着如下内容:

public Temperature otherUnit(TempUnit unit) {
    switch(unit) {
        case Celcius: {
            //If the current temperature is in Celcius, then return the current object.
            if(this.unit == TempUnit.celcius) return this;            
            // return a new object which has the equivalent temperature in Celcius.
        }
        ...    
    }
}
 类似资料:
  • 我想创建一个

  • 我最近看到新的Gmail API宣布吹嘘OAuth 2.0用户身份验证。 我有点担心,因为在我们的企业Google Apps域中,我已经使用XOAUTH2与Gmail集成。(从本质上讲,XOAUTH2 包括对 IMAP 身份验证的 OAuth 2.0 支持)。 我应该担心吗? 新的Gmail API是否意味着XOAUTH2的终结开始?

  • 描述中说: 在2020-11-10之前的Rust模型箱中发现了一个问题。共享数据结构具有发送和同步特征的实现,而不考虑内部类型。 什么是模型板条箱?抱歉,如果它的愚蠢的问题,但我是新的CVE漏洞。

  • 在参考Flutter教程时,我遇到了一个下划线。 null

  • 问题内容: 我正在审查为准备明天早上的期末考试而做的期中考试。我把这个问题弄错了,但是没有指出正确的答案,因此我忽略了询问教授。 考虑以下代码片段: 以下有关该代码的下列哪项正确? 主要方法旨在捕获和处理所有类型的异常。 主要方法是设计用来捕捉和处理鱼。 如果出现这种情况,则main方法应该简单地终止。 如果发生任何异常,main方法应该简单地终止。 我选择了第二个选项。 问题答案: 答案是数字4

  • 嗨,我正在读取BLE血糖仪的数据。当我试图阅读“00002a18-0000-1000-8000-00805f9b34fb”的特征时,它只是血糖测量UUID,特征。getProperties方法返回16,并且没有调用我的onCharacteristicRead方法本身。请帮助我如何读取BLOOD\u GLUCOSE\u测量特征。 我的读特征方法是 我的setCharacteristicNotific