Java 如何正确调用返回引用类型的方法?
我正在阅读有关返回引用类型结果的方法的Oracle Java教程,但已经被困了好几个小时。这里提供了链接Java 如何正确调用返回引用类型的方法?,java,methods,return,reference-type,Java,Methods,Return,Reference Type,我正在阅读有关返回引用类型结果的方法的Oracle Java教程,但已经被困了好几个小时。这里提供了链接 公共级自行车{ 私用整数速度=0; 公共自行车(INTA){ 速度=a; } 公共静态自行车见谁最快(自行车1、自行车2){ 自行车最快=自行车1; if(自行车1.速度
公共级自行车{
私用整数速度=0;
公共自行车(INTA){
速度=a;
}
公共静态自行车见谁最快(自行车1、自行车2){
自行车最快=自行车1;
if(自行车1.速度<自行车2.速度){
最快=自行车2;
}
返回速度最快;
}
公共静态void main(字符串[]args){
第一辆自行车=新自行车(100);
自行车二手车=新自行车(200);
自行车。参见最快的人(第一辆自行车,第二辆自行车);
}
}
然而,我无法让它按预期工作。我希望至少打印出bicycle2
对象,但没有显示任何内容
你们能帮我一下吗?提前谢谢。你们没有打印任何东西;你所做的只是机械地计算出哪个
Bicycle
entity最快的结果
为了看到结果,您需要做两件事:
- 用
call将行System.out.println
Bicycle。请参见谁最快(第一辆自行车,第二辆自行车)
- 在
中执行Bicycle
,这样您就不会得到无用的信息toString
toString
方法很简单:
@Override
public String toString() {
return "Bicycle, with speed " + speed;
}
考虑到静态seeswhosfastest方法返回自行车引用类型,您可以编写:
public static void main(String[] args) {
Bicycle firstBicycle = new Bicycle(100);
Bicycle secondBicycle = new Bicycle(200);
Bicycle fastestBike = Bicycle.seeWhosFastest(firstBicycle,
secondBicycle);
System.out.println(fastestBike);
}
为了打印有意义的内容,您需要使用类似于@Makato示例的内容覆盖Bicycle类中的toString方法
根据您的评论进行编辑:
首先,将第二个成员变量添加到自行车类中,类似于:
private String reference;
然后添加一个toString方法(也在Bicycle类中)
现在将自行车构造器更新为
public Bicycle(int speed, String reference) {
this.speed = speed;
this.reference = reference;
}
现在按如下方式更改您的主要方法:
public static void main(String[] args) {
Bicycle firstBicycle = new Bicycle(100, "Bicycle1");
Bicycle secondBicycle = new Bicycle(200, "Bicycle2");
Bicycle fastestBike = Bicycle.seeWhosFastest(firstBicycle,
secondBicycle);
System.out.println(fastestBike);
}
它应该像预期的那样工作
希望这有帮助我希望至少能打印出怎么做?你在哪里做的?你认为为什么会这样?为什么你对没有显示任何内容感到惊讶?你是否存储了
Bicycle的结果。请参阅谁最快(firstBicycle,secondBicycle)代码>你在哪里测试过这个代码?@Pavlin你好,Pavlin很抱歉,我在这里努力学习,但我总是感到困惑。呃,我的假设是,通过调用该方法,它将以最快的速度返回,并将bicycle2打印到屏幕上!为什么我们需要实现toString()?我以为已经有默认的了?另一个问题是我们是否能够打印出对象变量(bicycle2)而不是它的速度变量?再次感谢!你好,阿兰伦波,我想这里的每个人都在帮助我,你的帮助最接近我的意图。非常感谢你的帮助!但它打印出来的是对象的内存地址。是否可以打印出Bicycle2
对象@为了避免占用内存地址,只需重写Bicycle class a中的toString方法即可返回重要信息。要打印Bicycle2之类的内容,最好在Bicycle类中添加第二个字段,并通过toString方法返回。让我编辑我的答案
public Bicycle(int speed, String reference) {
this.speed = speed;
this.reference = reference;
}
public static void main(String[] args) {
Bicycle firstBicycle = new Bicycle(100, "Bicycle1");
Bicycle secondBicycle = new Bicycle(200, "Bicycle2");
Bicycle fastestBike = Bicycle.seeWhosFastest(firstBicycle,
secondBicycle);
System.out.println(fastestBike);
}