java 类存储_在java的另一个类中存储类的实例

我是初学java程序员,遇到问题。在java的另一个类中存储类的实例

我已经用'// !!'标记了代码的关键区域,我已经包含了程序的其余部分以帮助解决问题。

我想存储在类客户端中的链接列表客户端中存储的人的一个实例到名为乘客的链接列表中,在类汽车的一个实例中。不过,我经常遇到需要提供字符串和int的错误,这两个值存储在Person对象中。然而,我认为,因为我已经选择了Person类,这会被转移吗?有谁知道我要去哪里?总之,我试图将链接列表(客户端)中的对象(Person)的一个实例复制到另一个类(Car)中相同对象的另一个链接列表中,该列表本身就是一个实例3个车对象)

任何援助非常感谢。

这里是Car类包含乘客链表

import java.io.*;

import java.util.*;

public class Car implements Serializable

{ private int id;

private String pilot;

private int stops;

private LinkedList passengers = new LinkedList(); // !! `Here is the linked list passengers`

private double rate = 10.00;

public int scannableId = this.id;

//

public Car(int id, String pilot, int stops)

{ this.id = id;

this.pilot = pilot;

this.stops = stops; }

public void go()

{ System.out.println("CarManager" + id + " with " + pilot);

for (int stop = 0; stop < stops; stop++)

{ charge(stop);

if (stopAt(stop))

{ showStop(stop);

pay(stop); }}}

private boolean stopAt(int i)

{ for (Person person: passengers)

if (person.uses(i))

return true;

return false; }

private void showStop(int i)

{ String s = " Stop " + i + "\n";

String on = on(i);

if (!on.isEmpty())

s += " On: " + on + "\n";

System.out.print(s); }

private String on(int i)

{ String s = "";

for (Person person: passengers)

if (person.getsOn(i))

s += person.handle() + " ";

return s; }

public int getId() {

return this.id;

}

public int printId() {

System.out.print(this.id);

return this.id;

}

public int getStops() {

return this.stops;

}

public Person AddPassenger(Person newpassenger) {

newpassenger = passengers.add(new Person(newpassenger)); // !! This is where I try add a new passenger, however I'm getting an error stating that I need to provide a String and int, the parameters of the Person class.

}

这里是Person类

import java.io.*;

import java.text.*;

public class Person implements Serializable

{ private String name;

private int id;

private double cash = 100.00;

private int start = 0;

private int end = 0;

private double charge = 0;

public Person(String name, int id)

{ this.name = name;

this.id = id + 100; }

public boolean uses(int stop)

{ return getsOn(stop) || getsOff(stop); }

public boolean getsOn(int stop)

{ return start == stop; }

public int giveStops() {

System.out.println(this.start);

System.out.println(this.end);

return start;

}

public void setStart (int start) {

this.start = start;

}

public void setOff (int stop) {

this.end = stop;

}

public Person getPerson() {

Person person = this.Person;

return person;

}

public boolean getsOff(int stop)

{ return end == stop; }

public String handle()

{ return name + id; }

public double readCash() {

return this.cash;

}

public int getId() {

return this.id;

}

public String getName() {

return this.name;

}

@Override

public String toString() {

String result = " " + this.name + " (Scuba" + this.id + ") has " + formatted(this.cash);

return result;

}

private String formatted(double amount)

{ DecimalFormat twoD = new DecimalFormat("$###,##0.00");

return twoD.format(amount); }

public boolean matches(String name)

{ return this.name.equals(name) || name.equals(this.name + this.id); }

}

这里是carManager类,它包含汽车对象的链接列表。

import java.io.*;

import java.util.*;

public class CarManager implements Serializable

{ private LinkedList cars = new LinkedList();

private Clients clients = new Clients();

public CarManager(){

setup();

menu();

}

// !! Here is where the cars are created

public void setup()

{ cars.add(new Car(1, "Ed", 2));

cars.add(new Car(2, "Fred", 7));

cars.add(new Car(3, "Freda", 5)); }

public void menu() {

char choice;

while ((choice = readChoice()) !='x') {

switch(choice) {

case 'a': clients.makePerson(); break;

case 's': clients.showClients(); break;

case 'r':clients.removeClient(); break;

case 'b': findCar(); break;

case 'c': clients.getClient(); break;

default: showMenu();

}

}

}

private int nextInt() {

return In.nextInt();

}

public void findCar() {

System.out.print("Car: ");

int searchid = In.nextInt();

boolean carfound = false;

for (Car i: cars)

{

if (searchid == i.getId())

{

carfound = true;

System.out.println(" Stops 0-" + i.getStops());

getClientId();

Car thecar = i;

}

if (carfound == false)

System.out.println(" No such car");

}

}

public void getClientId() {

clients.theSiv();

}

private void showMenu() {

System.out.println("The menu choices are ");

System.out.println(" a: add a client");

System.out.println(" r: remove a client ");

System.out.println(" b: make a booking");

System.out.println(" g: go (run the s)");

System.out.println(" s: show the clients");

System.out.println(" f: store and exit");

System.out.println(" x: exit");

}

private char readChoice() {

System.out.print("Your choice: ");

return In.nextChar();

}

public void exit() {

System.exit(0);

}

}

这里是客户端类,这包含了包含了我想要添加到汽车

import java.io.*;

import java.util.*;

public class Clients implements Serializable

{ private LinkedList clients = new LinkedList();

private int id = 1;

public Clients()

{ clients.add(new Person("Homer", id++));

clients.add(new Person("Marge", id++));

}

public void makePerson(){

clients.add(createPerson());

}

public void removeClient() {

String searchname = readName();

boolean removed = false;

for (Person i:clients)

if (i.matches(searchname)){

clients.remove(i);

removed = true;

}

if (removed == false)

System.out.println(" No such client");

}

public void theSiv() {

System.out.println(" CarManager id: ");

String s = In.nextLine();

boolean isValidInteger = false;

char choice = 'p';

int foundid = 0;

boolean exists = false;

int searchid = 0;

try

{

int i = Integer.parseInt(s);

isValidInteger = true;

// if (isValidInteger = true)

searchid = i;

}

catch (NumberFormatException ex)

{

choice = s.charAt(0);

}

if (choice != 'x') {

for (Person b:clients)

if (b.getId() == searchid){

exists = true;

giveStops(b);

}

if(exists == false) {

System.out.println(" No such client");

resartTheSiv();

}

}

}

public void resartTheSiv(){

theSiv();

}

public int giveStops(Person i) {

String input;

System.out.println(" Trip: ");

input = In.nextLine();

String[] split = input.split(" +");

int start = Integer.parseInt(split[0]);

int stop = Integer.parseInt(split[1]);

i.setStart(start);

i.setOff(stop);

i.addPassenger(i); `// !! Here is where I try to add the selected instance of Person to car by first calling a method in Person to send itself to the passenger linked list.`

resartTheSiv();

return start;

}

public void getClient() {

System.out.print(" CarManager id: ");

char choice;

int searchid = In.nextInt();

boolean exists = false;

while ((choice = In.nextChar()) !='x'){

for (Person i:clients)

if (i.getId() == searchid){

exists = true;

System.out.println("found client");

}

if (exists == false)

System.out.println(" No such client");

}

}

public Person createPerson()

{

String name = readName();

Person p = new Person(name, id++);

System.out.println(" Hi " + p.getName() + ", " + "you are CarManager" + p.getId());

return p;

}

private String readName() {

System.out.print(" Name: ");

return In.nextLine();

}

public void showClients() {

for (Person i: clients)

System.out.println(i);

}

}

的实例人的情况下,链表客户这里是根类,有是程序从

import java.io.*;

public class Root

{ public Root() {

new CarManager();

}

public static void main(String[] args)

{ new Root(); }

private CarManager carManager;

}

跑这里是哪里输入进行处理,如果还有助于

import java.util.*;

public class In

{ private static Scanner in = new Scanner(System.in);

public static String nextLine()

{ return in.nextLine(); }

public static char nextChar()

{ return in.nextLine().charAt(0); }

public static int nextInt()

{ int i = in.nextInt();

in.nextLine();

return i; }

public static double nextDouble()

{ double d = in.nextDouble();

in.nextLine();

return d; }

}

2015-04-06

Mark

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值