【发布时间】:2021-04-12 20:57:58
【问题描述】:
我正在做一个班级分配,我必须参加一个我已经制作的程序,该程序由层次结构中的多个类和一个“演示”类组成,该类根据每个对象的信息组成进行打印。现在我需要对其进行更改,以便不必在控制台上打印出来,而是必须将其打印到一个文本文件中,用户输入文本文件名。这是“演示”主类的编码:
import java.lang.*;
import java.io.*;
import java.util.*;
/**
* PolymorphDemo
*
* @author (Sean Hall)
* @version (4/12/21)
*/
public class PolymorphDemo
{
public static void main(String[] args) throws Exception
{
Person[] people = new Person[12];
people[0] = new Student("Cotty, Manny", 4910);
people[1] = new Undergraduate("Kick, Anita", 9931, 1);
people[2] = new Undergraduate("DeBanque, Robin", 8812, 4);
people[3] = new Person("Bugg, June");
people[4] = new Parent("DeBanque, Sylvia", 1849);
people[5] = new Alumni("McCombs, Daniel", 1542, "Pi Kappa Alpha");
people[6] = new StudentGovernment("Steele, Ashley", 7025, "Class President");
people[7] = new Employee("Jones, Jason", 150, "English");
people[8] = new Faculty("Greene, Erin", 124, "Math", "Professor of Calculus");
people[9] = new Staff("McKinley, Aaron", 86, "Maintenance", 14);
people[10] = new Person("Honda, Edward");
people[11] = new Undergraduate("Huginkiss, Amanda", 8230, 2);
//Scanner for user input
Scanner keyboard = new Scanner(System.in);
//prepare the output file
System.out.print("Enter the name of the new File: ");
String outputFileName = keyboard.nextLine();
try (PrintWriter output = new PrintWriter(new File(outputFileName)))
{
for (Person p : people)
{
output.println(p);
output.println();
}
}
}
}
我知道它还没有完成,但我已经完成了编程。多个类层次结构都链接到 person 对象,每个对象都有与其相关的特定信息。任何人都对如何将信息复制到保持这样的输出格式的文本文件有一些指示?
姓名:科蒂·曼尼
学号:4910
姓名:Kick,安妮塔
学号:9931
姓名:德班克、罗宾
学号:8812
姓名:布格,六月
姓名:西尔维娅·德班克
家庭号码:1849
姓名:麦库姆斯,丹尼尔
家庭号码:1542
校友联谊会/联谊会:Pi Kappa Alpha
姓名:斯蒂尔,阿什利
学号:7025
学生自治会头衔:班长
姓名:琼斯,杰森
员工编号:150
员工部门:英文
姓名:格林,艾琳
员工编号:124
员工部门:数学
教员职称:微积分教授
姓名:麦金利、亚伦
员工编号:86
员工部门:维修
员工薪资等级:14
姓名:本田,爱德华
姓名:哈金基斯,阿曼达
学号:8230
学生等级:1
我应该提到,这些链接在一起的每个班级在他们的班级中都有一种打印每个人/学生/本科生/等信息的方法。有,也许有某种方法可以根据类打印输出中的内容打印出信息?
【问题讨论】:
-
你真的需要为
people数组中的每个人创建一个键盘扫描器和一个新的输出文件吗?您将如何将至少Person数据打印到文件中? -
仅供参考,“多重继承”的概念是模棱两可的,通常是指一个类,它可以从多个继承行为父类。 C++ 有这个,但 Java 没有。在Java 中,您可以从一个类(父类)继承行为,也可以从多个接口(不提供行为)继承。 (其中“行为”表示方法body。)因此请考虑这一点,并可能编辑您的问题以准确说出“多重继承对象”的含义。 (例如,您的意思是“从某个类继承的多个对象”?还是层次结构中的多个 类?)
-
我并没有考虑为数组中的每个人创建一个新的输出文件,我想要一个文本文件中所有人员条目的列表。
标签: java text-files virtual-functions