gpt4 book ai didi

java - java中的类成员和赋值

转载 作者:行者123 更新时间:2023-12-02 04:43:57 27 4
gpt4 key购买 nike

下面是我有疑问的程序:

    import java.util.Scanner;

class degrees
{
float faren;
//float cel = (faren-32)*0.55f; doesn work
void conversion()
{
System.out.println("Fahrenheit is "+(faren-32)*0.55f+"Celcius");
//System.out.println("Fahrenheit is "+cel+"Celcius"); doesnt work
}
}

class Problem4
{
public static void main(String args[])
{
degrees deg = new degrees();
System.out.println("Enter the temperature in Fahrenheit");
try(Scanner n1 = new Scanner(System.in))
{
deg.faren = n1.nextFloat();
}
deg.conversion();
}
}

所以我发表评论的两个声明

  float cel = (faren-32)*0.55f;// this one and 
System.out.println("Fahrenheit is "+cel+"Celcius");//this one

以上两种说法都行不通。我通过调用 object 来分配 faren 的值,但仍然如此。谁能解释一下为什么?

这只是一个简单的程序,如有错误请不要纠正。我需要弄清楚自己。请帮我完成上述两个陈述。

最佳答案

改用这个:

class degrees
{
float faren = 0;
float cel = 0;

void degrees(float faren)
{
this.faren = faren;
this.cel = (this.faren-32)*5.0f/9.0f;
}
void conversion()
{
//System.out.println("Fahrenheit is "+(this.faren-32)*0.55f+"Celcius");
System.out.println("Fahrenheit is "+this.cel+"Celcius");
}
}

像这样使用:

var deg = new degrees(farheneitValueHere);
deg.conversion();

float cel = (faren-32)*0.55f; 不起作用,因为在使用表达式(尤其是包含另一个属性的表达式)定义时无法初始化属性。此 System.out.println("Fahrenheit is "+cel+"Celcius"); 不起作用,因为 cel 尚未定义/转换(由于第一个原因)。相反,在构造函数中初始化值(如上例所示)

关于java - java中的类成员和赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29855103/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com