[英]Creating a method returning a boolean taking an object as argument
谁能帮我。 我想通过isFaster(Car otherCar)
方法来比较两辆车是否更快。 有人可以帮我了解如何将Car
对象与otherCar
对象进行比较,后者是isFaster
方法的参数。 我该如何创建方法的主体。
public class Car {
private String make ="";
private int year = 0;
private int maxSpeed = 0;
public Car(String make,int year,int maxSpeed){
this.make = make;
this.maxSpeed = maxSpeed;
this.year = year;
}
public void setSpeed(int maxSpeed){
this.maxSpeed = maxSpeed;
}
public void setMake(String make){
this.make = make;
}
public void setYear(int year){
this.year = year;
}
public int getMaxSpeed(){
return maxSpeed;
}
public int getYear(){
return year;
}
public String getMake(){
return make;
}
public String toString(double param){
String temp = String.valueOf(param);
return temp;
}
public String toString(int param){
String temp = String.valueOf(param);
return temp;
}
public String toString(char param){
String temp = String.valueOf(param);
return temp;
}
}
在Car对象中,必须带有一些属性,例如
class Car{
int gear;
double speed;
}
当需要比较时,需要确定要比较的决定属性。
如果它的速度呢
// isFaster will only return true if the calling car object is faster
// than the otherCar
// for your class this should work
isFaster(Car otherCar){
return this.getMaxSpeed() - otherCar.getMaxSpeed() ;
}
// If you use double for speed, and you need precision
// you can set some tolerance value for comparisons.
isFaster(Car otherCar){
return (this.getMaxSpeed() - otherCar.getMaxSpeed() ) < TOLERANCE ;
}
希望这可以帮助。
假设Car
类具有诸如double getMaxSpeed ()
类的方法,则可以如下实现isFaster (Car otherCar)
:
boolean isFaster (Car otherCar) {
return this.getMaxSpeed() > otherCar.getMaxSpeed ();
}
您必须基于速度覆盖.equals()方法,然后只有您才能有意义地比较对象。 否则默认情况下.equals()使用==来比较对象,在这种情况下,仅当对象相同时才可以相等
创建这样的方法
public boolean isFaster(Car anotherCar){
return this.maxSpeed > anotherCar.maxSpeed;
}
在客户端代码示例中:
public static void main(String args []){
Car car1 = new Car();
car1.setSpeed(200);// should be setMaxSpeed();
Car car2 = new Car();
car2.setSpeed(250);
System.out.println(car1.isFaster(car2));// prints false
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.