gpt4 book ai didi

java - 子类无法访问父类ArrayList中的内容

转载 作者:行者123 更新时间:2023-12-01 13:52:14 25 4
gpt4 key购买 nike

abstract class PayRoll
{
List<String> nm=new ArrayList<String>();
List<String> id=new ArrayList<String>();
List<String> dob=new ArrayList<String>();
}


class Employee extends PayRoll implements PayEmpInt
{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
int n;
String ename,eid,birth,pr_id;
public void addEmployee()
{
try
{
System.out.print("\nEnter the number\t :");
n=Integer.parseInt(br.readLine());
for(int i=0;i<n;i++)
{
System.out.print("\nEnter Employee name\t :");
ename=br.readLine();
System.out.print("\nEnter the Employee ID\t :");
eid=br.readLine();
System.out.print("\nEnter the D.O.B(mm-dd-yyy)\t :");
birth=br.readLine();
nm.add(ename);
id.add(eid);
dob.add(birth);
}
}
catch(IOException e)
{
System.out.print("\nError while handling the Input. "+e);
}
}


class Project extends Employee
{
public void display()
{
System.out.print("\nName\t\tID\t\tDOB");
for(int i=0;i<id.size();i++)
System.out.println(nm.get(i)+"\t"+id.get(i)+"\n"+dob.get(i));
}
}

import java.io.*;

class PayMain
{
public static void main(String args[])throws IOException
{
int ch;
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
while(true)
{
System.out.println("\nOptions:\n\t1. Employee DB\n\t2. Projects\n\t3. Exit");
ch=Integer.parseInt(br.readLine());
switch(ch)
{
case 1:
Employee e=new Employee();
e.addEmployee();
System.out.print("\nEMPLOYEE LIST");
e.employeeDetails();
break;
case 2:
Project p=new Project();
p.display();
break;
case 3:
System.exit(0);
}
}
}

}

我可以从主类调用方法addEmployee。添加员工后,当我尝试调用方法显示(存在于项目中)时,它不会打印列表的内容。

我不知道为什么 Project 无法访问其父类 Employee 中存在的 List 的值。

编辑:添加了主类。问题是我使用 addEmployee 方法来添加新员工,并且 employeeDetails 完美地显示了所有内容。但是当我调用 p.search() 时,它除了 NAME ID DOB 之外不显示任何内容。

注意:请原谅我奇怪的设计。我是 Java 新手。我正在做一个关于员工管理系统的小型项目(不使用任何数据库软件)。所以建议我如何设计它。谢谢!

最佳答案

我需要看看你的主要方法。当我运行我的 main 时:

public static void main(String[] args) {

Project aProject = new Project();

aProject.addEmployee();
aProject.display();
}

我得到以下输出(带有我的示例输入):

输入数字:2

输入员工姓名:bob

输入员工 ID:123

输入出生日期(mm-dd-yyy):01-01-2222

输入员工姓名:alice

输入员工 ID:234

输入出生日期(mm-dd-yyy):04-44-4444

姓名 ID DOBbob 12301-01-2222爱丽丝 23404-44-4444

您需要确保在同一对象上调用这些方法。

此外,您可能需要将 addEmployee 方法更新为 addEmployees,因为它会提示您输入要添加的号码。

关于java - 子类无法访问父类ArrayList中的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19879943/

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