问题是 -
根据航班的详细信息输入,创建对象vector
的{{1}}。请注意,故障单应以与输入相同的顺序显示在Ticket
中。
详细信息以vector
提供。数组中的每个项目对应一个故障单,并具有以下空格分隔的详细信息:String[]
。
我试过跟随,因为我是新手,我第一次这样做,我无法找到自己的方式。
Origin, destination, departure, arrival, amount
答案 0 :(得分:0)
在不使用FlightTickets对象的情况下,您无法在静态函数(包括main)中处理FlightTickets的Member变量。
您应该执行以下操作:
f.v.add(ticket);
这不是标准做法,许多程序员通过抽象内部使用的数据结构来使用其他技术。您可以在FlightTickets中创建一个函数,如下所示:
public void addTickets(FlightTicket ticket)
{
this.v.add(ticket);
}
此外,您设计的课程令人困惑,因为FlightTicket有一个向量,您可以在其中存储FlightTickets的集合。可能你可能想要以更好的方式设计它。
答案 1 :(得分:0)
一个简单的解决方法是在主方法中移动Vector v = new Vector();
。这导致:
import java.util.Vector;
public class FlightTickets {
String origin;
String destination;
String departure;
String arrival;
String amount;
public FlightTickets(String origin, String destination, String departure, String arrival, String amount){
this.origin = origin;
this.destination = destination;
this.departure = departure;
this.arrival = arrival;
this.amount = amount;
}
public static void main(String[] args){
FlightTickets ticket = new FlightTickets("Caledonia", "South Korea", "10:00", "5:00", "15000");
Vector v = new Vector();
v.add(ticket);
}
}
正如@obicere的评论中提到的,您最好使用ArrayList或List。代码不起作用的真正原因是@kakarot回答,你不能从静态方法访问非静态字段。
答案 2 :(得分:0)
试试这个:
public static void main(String[] args) {
FlightTickets ticket = new FlightTickets("Caledonia", "South <bKorea", "10:00", "5:00", "15000");
ticket.v.add(ticket);
}
请记住,您无法从静态方法访问非静态变量。 顺便说一句,因为Vector类是泛型类型,所以最好像这样定义'v':
Vector<TestClass> v = new Vector<TestClass>();
作为对您评论的回复,我提供了一个相当完整的实现,以获取更多详细信息:
import java.util.Iterator;
import java.util.Vector;
public class TestClass {
String Origin;
String destination;
String departure;
String arrival;
String amount;
Vector<TestClass> v = new Vector<TestClass>();
public TestClass(String Origin, String destination, String departure, String arrival, String amount) {
this.Origin = Origin;
this.destination = destination;
this.departure = departure;
this.arrival = arrival;
this.amount = amount;
}
public static void main(String[] args){
TestClass ticket = new TestClass("Caledonia", "South Korea", "10:00", "5:00", "15000");
ticket.v.add(ticket);
Iterator<TestClass> it = ticket.v.iterator();
while(it.hasNext())
System.out.println(it.next().Origin);
}
}