gpt4 book ai didi

java - 在面向对象编程 Java 中使用数组和方法

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:52:45 26 4
gpt4 key购买 nike

我正在学习Java,话虽如此,我的知识还处于学习Java的爬行阶段。我读过关于在数组中使用对象的内容,它非常强大。我正在尝试编辑这个简单的示例类和测试类来显示谁是最快的驱动程序,以及最快的速度是多少。我在想如何解决这个问题有两种方法。一个是找到最大速度,并找到数组编号(例如数组 [2])。

我已经设法捕捉到循环中的最高速度和数组编号。把它放到一个方法中,然后调用它让我很困惑。任何帮助深表感谢。

我得到的错误代码
TestBikeWithArray.java:73: 错误:二元运算符 '>' 的错误操作数类型
如果(bikeRace[i] > bikeRace[0])
^
第一种:自行车
第二种:自行车
1 个错误

工具已完成,退出代码为 1
他们都是自行车类,我不明白。

public class Bike{

private String driver;
private int gear;
private int cadence;
private int speed;
private int id;

private static int numberOfBikes = 0;

public Bike(String theDriver, int startGear,int startCadence, int startSpeed){
driver = theDriver;
gear = startGear;
cadence = startCadence;
speed = startSpeed;
numberOfBikes++;
id = numberOfBikes;
}

public String getDriver() {return driver;}
public void setDriver(String d) {driver = d;}


public int getGear(){return gear;}
public void setGear(int g){gear = g;}

public int getCadence(){return cadence;}
public void setCadence(int c){cadence = c;}


public int getSpeed(){return speed;}
public void setSpeed(int s) {speed = s;}

public int getID() {return id;}

public static int getNumberOfBikes() {return numberOfBikes;}

// method to print out contents of object
public String toString ()
{
StringBuffer sb = new StringBuffer();
sb.append("\nDriver: " + driver);
sb.append("\nGear: " + gear);
sb.append("\nCadence: " + cadence);
sb.append("\nSpeed: " + speed);
sb.append("\nID: " + id + "\n");

return (new String(sb));
} // end toString method

} // end class


主要测试自行车

import java.util.Scanner;
import javax.swing.JOptionPane;

class TestBike
{
public static void main(String[] args)
{
String message ="";

Bike[] bikeRace = new Bike[10];

bikeRace[0] = new Bike("Cersei Lannister", 0, 0, 0);
bikeRace[1] = new Bike("Daenerys Targaryen", 10, 60, 22);
bikeRace[2] = new Bike("Robb Stark", 21, 50, 15);

//testing values
//bikeRace[3] = new Bike("Melisandre", 31,90,155);
//bikeRace[4] = new Bike("Margaery Tyrell", 2, 3, 100);

bikeRace[0].setGear(3);

for(int i=0; i < Bike.getNumberOfBikes(); i++)
{
System.out.println(bikeRace[i].toString());

//testing, must use a proper function call!
//System.out.println(bikeRace[i].getDriver());
} // end for loop

//find max speed & driver findTheFastestDriver

//testing stuffs get all drivers
/*for(int i=0; i < Bike.getNumberOfBikes(); i++)
{
System.out.println("Driver: " + bikeRace[i].getDriver());
}

//testing get all speeds
for(int i=0; i <Bike.getNumberOfBikes(); i++)
{
System.out.println("Speed: " + bikeRace[i].getSpeed());
} */

//****************************************************************/
//finding fastest bike without a method
//fastest speed is 22
/*int fastestBike = bikeRace[0].getSpeed();
int fastestBikeIndex = 0;
for(int i=0; i<Bike.getNumberOfBikes(); i++)
{
if (bikeRace[i].getSpeed() >= fastestBike)
{
fastestBike = bikeRace[i].getSpeed();
fastestBikeIndex = i;
}//end if
}//end for
System.out.println("fastest Bike Speed: " + fastestBike + " " + " Bike index of " + fastestBikeIndex);*/
//********************************************************************


int fastestBikeIndex = findTheFastestDriver(bikeRace);
System.out.println("\nThe fastest driver is " + bikeRace[fastestBikeIndex].getDriver() + " and the speed of " + bikeRace[fastestBikeIndex].getSpeed() + " mph.");


System.out.println("\nNumber of Bikes: " + Bike.getNumberOfBikes() + "\n");

} //end of main

public static int findTheFastestDriver(Bike[] bikeRace)
{
int fastestBike = bikeRace[0].getSpeed();
int fastestBikeIndex = 0;
for(int i=0; i < Bike.getNumberOfBikes(); i++)
{
if (bikeRace[i].getSpeed() >= fastestBike)
{
fastestBike = bikeRace[i].getSpeed();
fastestBikeIndex = i;
}//end if
}//end for
return fastestBikeIndex;
}

} //end of class

代码有效 :) 太高兴了。

最佳答案

if (bikeRace[i] > bikeRace[0])

改为

if (bikeRace[i].getSpeed() > bikeRace[0].getSpeed())

推理:您不能在数值上比较非数值对象。

关于java - 在面向对象编程 Java 中使用数组和方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16051105/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com