Java 如何在方法中返回类类型
我有一节课Java 如何在方法中返回类类型,java,class,methods,junit,return-type,Java,Class,Methods,Junit,Return Type,我有一节课 public class Engine { Double engineSize; public Engine(){ this.engineSize = 1.0; } public Double getEngineSize() { return engineSize; } } 我还有一门课: public class ModelT { public Engine getEngine() {
public class Engine {
Double engineSize;
public Engine(){
this.engineSize = 1.0;
}
public Double getEngineSize() {
return engineSize;
}
}
我还有一门课:
public class ModelT {
public Engine getEngine() {
return null;
}}
现在我想通过这个测试:
@Test
public void shouldHaveTheCorrectEngineSize(){
assertThat(modelT.getEngine().getEngineSize(), is(1.0));
}
我很难在方法中返回引擎类型,我尝试了几种方法,但知识有限,因为我是java初学者。。你能告诉我怎么做吗?我可以进一步阅读的概念名称是什么 您需要在ModeT类中存储引擎实例:
public class ModelT {
private Engine eng;
ModelT( Engine eng){
engine = eng;
}
public Engine getEngine() {
return eng;
}}
然后在Main中-创建引擎对象并传入modelt:
Engine eng = new Engine();
ModelT car = new Modelt(eng);
很难看出你想要达到什么目标 您可以查看instanceof以获得引擎的类别 您可能需要研究继承以及与类相关的各种方式
如果将
引擎
类与ModelT
我所说的联想是指使用
如何在 类ModelT 你在某处:
ModelT foo = new ModelT();
Engine e = foo.getEngine();
double s = e.getEngineSize();
此测试永远不会通过,因为在
getEngine()
方法中返回null
。
如果在null
上调用getEngineSize()
,将收到NullPointerException
您需要这样做:
public class ModelT {
public Engine getEngine() {
return new Engine();
}
}
然后,您将能够使用引擎
由于您对如何学习Java基础知识的疑问,我建议您直接从Oracle学习。也许我不理解您的问题,但您的测试永远不会返回ok,因为在ModelT方法getEngine中,您返回的是null 请尝试以下代码:
public class ModelT {
public Engine getEngine() {
return new Engine();
}
}
为什么
getEngine
返回空对象?你不能对此进行任何方法调用。我不确定如何回答你的问题。通过返回引擎类型对象,可以返回引擎类型(对象)。就像你在getEngineSize
中返回一个双精度值一样,你也可以在getEngine
中返回一个引擎,我现在把它保持为null,作为一个问题,我如何才能在这里返回引擎的类型而不是null,并通过这个方法获取getEngineSize的值并将其作为引擎对象返回。。。我是一个初学者,这让我很困惑……如果你在做类似的事情时遇到困难,我强烈建议不要开始使用JUnit,而是学习一些教程。例如:@tnw但是如何通过“getEngine()”获取“getEngineSize()”的值并将其作为引擎类型返回?如何在ModelT类中返回public double getEngineSize()的值?@Tayyab I#已经更新了答案。。。你有一个ModelT类的对象,里面是一个引擎,里面是一个double。。。因此,您可以调用getter,直到获得该值:)public Engine getEngine(){ModelT foo=new ModelT();Engine e=foo.getEngine();double s=e.getEngineSize();return s;}如何返回public double getEngineSize()的值在ModelT类中,您必须理解getEngineSize返回引擎的属性。所以你的引擎已经知道尺寸了。因此,您可以将返回类型从Engine更改为Double,因为EngineSize是Double;在测试中,它显示了这个错误;对于Double类型,未定义getEngineSize()方法
public class ModelT {
public Engine getEngine() {
return new Engine();
}
}