我必须实现一个名为createfromcelsius
的方法(Factory-method),在这里我可以创建具有特定温度单位(摄氏度、开尔文...)的新对象。我还创建了将代码从一个单元转换为另一个单元的方法。问题是我不知道如何将covert-method连接到createfromcelsius
方法。我试着让我的所有方法和变量abstact
,以便我可以调用它们。问题是:如何在create-methods中实现convert-methods?
这是我的代码:
public class Temperatur {
private final float temp;
/**
* Static variable for kelvin
*/
public static final float KELVIN_OFFSET = 273.15f;
private Temperatur(float temp) {
this.temp = temp;
}
private static Temperatur createfromCelsius(final float temp) {
return createfromCelsius(temp);
}
private static Temperatur createfromFahrenheit(final float temp) {
return createfromFahrenheit(temp);
}
private static Temperatur createfromKelvin(final float temp) {
return createfromKelvin(temp);
}
/**
* converts celsius into kelvin
*
* @return
*/
public float celsiusToKelvin() {
return (temp + KELVIN_OFFSET);
}
/**
* converts celsius into fahrenheit
*
* @return
*/
public float celsiusToFahrenheit() {
return (temp * (9f / 5f) + 32f);
}
/**
* converts kelvin into celsius
*
* @return
*/
public float kelvinToCelsius() {
return (temp - KELVIN_OFFSET);
}
/**
* converts kelvin into fahrenheit
*
* @return
*/
public float kelvinToFahrenheit() {
return (((temp - KELVIN_OFFSET) * (9f / 5f)) + 32f);
}
/**
* converts fahrenheit into celsius
*
* @return
*/
public float fahrenheitToCelsius() {
return (((temp - 32f) * (5f / 9f)));
}
/**
* converts fahrenheit into kelvin
*
* @return
*/
public float fahrenheitToKelvin() {
return ((temp + 459.67f) * (5f / 9f));
}
}
如前所述,abstract
并不能满足您的需要
一个工厂会这样工作
private static Temperatur createfromCelsius(final float temp) {
return new Temperatur(temp);
}
但是,您应该定义类中的temp字段应该是什么基本度量单位,而不是通过factory参数。例如,如果您想将所有内容转换为开尔文,那么看起来就像
private static Temperatur createfromCelsius(final float temp) {
Temperatur t = new Temperatur(temp); // or do the math directly here
t.temp = t.celsiusToKelvin();
return t;
}
那么您只需要公共getter方法就可以从Kelvin进行单向转换
我试图了解继承在Java中是如何工作的。这是我的示例代码。 这工作正常。但是我无法理解,当我通过<代码>动物d=新狗()创建对象时;为什么我不能不调用类狗的方法<代码>树皮()?感谢所有的答案。
假设我有一个类Things,它包含许多不同的实例变量。我为它们分别创建了单独的setter和getter方法。如果我想创建另一个存储things'class'的class2,那么为things类中的实例变量创建额外的setter和getter方法是很好的编码方法。另外,假设我有另一个使用class2的class3,那么重复setter和getter方法会产生高耦合吗?
在Android Studio中评论Java方法时,我可以键入/**并生成带有方法参数和返回类型的javadoc。但这似乎对科特林不起作用。 有什么方法可以教你自动生成Kotlin KDoc格式的方法文档吗? 编辑:是的,这个问题和可能重复的问题是一样的,但我的问题不是“为什么?”,我知道KDoc有不同的格式。我的问题是,是否有一种方法可以在AS中为科特林做同样的事情?也许有办法添加/编辑这个模板
这个问题是由打字错误或无法再复制的问题引起的。虽然类似的问题可能在这里讨论,但这一问题的解决方式不太可能帮助未来的读者。 我对java很陌生,试图编写一个简单的代码,包含main方法和另外两个方法(calcAverage和determineGrade)。我一直在试着让它工作,但是这两种方法都出错了 我尝试切换变量并切换方法的工作方式,但我什么也得不到。
本文向大家介绍c# 调用Win32Api关闭当前应用的方法,包括了c# 调用Win32Api关闭当前应用的方法的使用技巧和注意事项,需要的朋友参考一下 Win32 API Win32 API即为Microsoft 32位平台的应用程序编程接口(Application Programming Interface)。所有在Win32平台上运行的应用程序都可以调用这些函数 使用Win32 API,应用程
我有3个类:主要游戏,ufoMovement(实际上是一个线程)和ufo本身(是的,在图片中是德语,但他们只是名字)。UfoMovement创建了一个Ufo,它有一个叫做“爆炸”的方法,其中组件会飞离。主游戏开始线程UFOMovement。这个游戏是一个小行星躲避游戏,你的ufo正在飞行,你必须躲避小行星,这意味着我必须从main类调用方法:Explomde,因为那个类检查碰撞,但是当我调用mai