【问题标题】:Driver prog and method not behaving驱动程序和方法不正常
【发布时间】:2018-07-24 16:12:18
【问题描述】:
public class FlightTest 
{
    public static void main(String[] args) 
    {
        Flight info = new Flight(null, 0, null, null);
        String name = "Delta Airlines";
        int flightNum = 54663;
        String origin = "Dallas, TX";
        String destination = "Canton, MI";
        info.setDestination(destination);
        info.setFlightNum(flightNum);
        info.setName(destination);
        info.setOrigin(destination);
        System.out.print(info);
    }
}

上面的代码是我的驱动程序。
下面是我正在使用的方法。我不确定它是没有被正确调用还是没有被正确命名。

public class Flight {

    private String name;
    private int flightNum;
    private String origin;
    private String destination;

    public Flight (String name, int flightNum, String origin, String destination) {
        name = "";
        flightNum = 0;
        origin ="";
        destination = "";
    }
    public enum Status {
        ONTIME, DELAYED, CANCELLED;
    }
    private Status flightStatus = Status.ONTIME;

    public String getName() {
        return name;
    }

    public void setName(String newName) {
        name = newName;
    }

    public int getFlightNum() {
        return flightNum;
    }

    public void setFlightNum(int newFlightNum) {
        flightNum = newFlightNum;
    }

    public String getOrigin() {
        return origin;
    }

    public void setOrigin(String newOrigin) {
        origin = newOrigin;
    }

    public String getDestination() {
        return destination;
    }

    public void setDestination(String newDestination) {
        destination = newDestination;
    }

    public String toString() {
        return "The airline name is " +name+ ".\the flight number is " +flightNum+".\the origin is " + origin + ".\the destination is " +destination;
    }
}

.toString()在打印的时候把“the”这个词删掉了,除了flightnum之外,打印出来的都是“canton mi”,没错。

【问题讨论】:

    标签: java methods driver


    【解决方案1】:

    它打印出的所有内容都是“canton mi”,除了 flightnum,这是正确的

    好吧,您正在将所有内容设置为目的地,即"canton, mi"

        info.setDestination(destination); // destination
        info.setFlightNum(flightNum);     
        info.setName(destination);        // destination
        info.setOrigin(destination);      // destination
    

    您需要使用正确的值填充您的 info

        info.setDestination(destination);
        info.setFlightNum(flightNum);
        info.setName(name);
        info.setOrigin(origin);
    

    此外,\t 只是一个制表符,因此它被打印为空格。删除前导\

    【讨论】:

    • 现在工作!修复了它,我应该注意到但没有。非常感谢!
    • @Dev5564 发生在每个人身上。很高兴我能帮上忙!
    【解决方案2】:

    您的字符串中有\t,这是一个转义字符。 \t 表示标签,所以你的结果是

    The airline name is Canton, MI.{tab}he 
    

    您应该删除\

    【讨论】:

    • 啊好吧,这样就修复了打印输出,现在我只需要弄清楚为什么所有内容都设置为 canton mi
    猜你喜欢
    • 1970-01-01
    • 2016-05-03
    • 2019-02-08
    • 2021-06-12
    • 1970-01-01
    • 2019-08-06
    • 2015-10-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多