繁体   English   中英

创建一个返回以对象为参数的布尔值的方法

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM