gpt4 book ai didi

java - 需要多种方法来得出此输出

转载 作者:太空宇宙 更新时间:2023-11-04 12:44:54 27 4
gpt4 key购买 nike

我应该想出这个输出。

enter image description here

但我得到的是这个..

enter image description here

这是我的代码:

import java.lang.*;
import java.util.*;
import java.io.*;

public class Sample{

private String name;
private Hashtable customers = new Hashtable();
private Hashtable movies = new Hashtable();

public Sample(String aName){
name = aName;
}

public String getName(){
return name;

}

public void setName(String aName){
name = aName;
}
public void addCustomer (Customer customer) {
customers.put(customer.getName(), customer);
}

public Customer getCustomer (String customerName) {
return (Customer)customers.get(customerName);
}

public void addMovie (Movie movie) {
movies.put(movie.getName(), movie);
}

public Movie getMovie (String movieName) {
return (Movie)movies.get(movieName);
}

public void error (String message) {
System.out.println ("ERROR: " + message);
}

public Enumeration getMovies() {
return movies.elements();
}
public Enumeration getCustomers() {
return customers.elements();
}
public void showAll() {
System.out.println ("name: "+ this.getName());
Enumeration kk = this.getCustomers();
while (kk.hasMoreElements()) {
Customer one = (Customer) kk.nextElement();


System.out.println (one.show());
}
Enumeration ff = this.getMovies();
while (ff.hasMoreElements()) {
Movie one = (Movie) ff.nextElement();
System.out.println (one.show());
}
}
public void test() {
Customer k1 = new Customer ("Jonah") ; this.addCustomer (k1);
Customer k2 = new Customer ("Hellen") ; this.addCustomer (k2);
Customer k3 = new Customer ("Agnes") ; this.addCustomer (k3) ;
Movie f1 = new Movie ("StarWars"); this.addMovie (f1) ;
Movie f2 = new Movie ("Shrek"); this.addMovie (f2) ;
System.out.println("-**-**- test part 1 -**-**-") ;
this.showAll();

System.out.println("-**-**- test part 2 -**-**-") ;
System.out.println("---" + k1.getName() + " rents " + f1.getName());
this.showAll();
k1.doRent(f1);

我的客户类别:

package eric;

public class Customer {

String name;
public Customer(String nameCus){
name = nameCus;
}

public String getName(){
return name;
}

public String show(){

return name;

}


public void doRent(Movie f1) {

System.out.println(" -"+ " RentData" + "[" + getName() +"," + f1.getName() + "]" );

}

}

我的电影课:

public class Movie {

String name;
int x = 0;



public Movie(String nameMov){
name = nameMov;
}
public String getName(){
return name;
}


public String show(){
return name+"\n"+" - average: "+x +" days\n"+" - number of rentings: "+x ;


}

}

我的问题是我找不到一种方法来修复乔纳名字下的-RentData [Jonah,StarWars]...相反,它出现在输出的末尾..我需要有人来帮助我弄清楚我要如何做到这一点..谢谢

最佳答案

您在 this.showAll() 之前调用 k1.doRent(f1),因此您自然会在打印名称之前打印“RentData...”行。您的代码现在的方式根本不利于您尝试做的事情。您的 Customer 类应该有一个名为 rentedMovies 的成员列表,每次您对 Customer 对象调用 doRent(...) 时都会填充该列表。然后,Customer.show() 应该打印客户的姓名,后跟来自 rentedMovies 的“RentData...”内容。

关于java - 需要多种方法来得出此输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36431324/

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