当前位置: 首页 > 知识库问答 >
问题:

对象第二个员工不在

督德明
2023-03-14

我写了一些代码,我想要一些帮助这个关于公司的程序

这是一个主要的:

Employee e1=new Employee (43208931,"Zainab","Directer","14/5/1990",15000);
    Employee e2=new Employee (43208932,"Ahmed","Maneger","14/5/1991",18000);
    Employee e3=new Employee (43208932,"Talal","Engeniar","14/5/1989",1000);
    Employee e4=new Employee (43208931,"khaled","software Engeniar","14/5/1978",6000);
    Employee e5=new Employee (43208931,"Mohammed","Director","14/5/1978",9000);
    Employee e6=new Employee (43208931,"Jalel","software Designer","14/5/1978",8000);


     Department d1;
     Department d2;
     Department d3;

    d1 = new Department (e1 , e3 , "Jeddah Branch");
    d2 = new Department (e2 , e4 ,"Hail Branch");
    d3 = new Department (e5 , e6 ,"Musqet Branch"); 

     Project p1=new Project (d3,"Bank System");
     Project p2 = new Project (d2,"Employee System");
     Project p3=new Project (d1,"Student System");
     System.out.println(p1.toString());
     System.out.println(p2.toString());
     System.out.println(p3.toString());

这是class Employee:`Public class Employee{private long ID;private String Name;private String Position;private

Employee(){

}
public Employee(long ID, String Name, String position, String DateOfBirth, double Salary) {
    this.ID = ID;
    this.Name = Name;
    this.position = position;
    this.DateOfBirth = DateOfBirth;
    this.Salary = Salary;
}

public long getID() {
    return ID;
}

public String getName() {
    return Name;
}

public String getPosition() {
    return position;
}

public String getDateOfBirth() {
    return DateOfBirth;
}

public double getSalary() {
    return Salary;
}

@Override
public String toString() {
    return "Employee{" + "ID=" + ID + ", Name=" + Name + ", position=" + position + ", DateOfBirth=" + DateOfBirth + ", Salary=" + Salary + '}';
}


`

这是类Department:`public class Department extends Employee{Employee

Department(){

}



public Department(Employee Employee,Employee E, String DName) {
    this.Employee = E;
    this.Employee = Employee;
    this.DName = DName;

}

public Department(Employee Employee, Employee E,String DName, long ID, String Name, String position, String DateOfBirth, double Salary) {
    super(ID, Name, position, DateOfBirth, Salary);
    this.Employee = Employee;
    this.DName = DName;

}



 public Employee getEmployee(){
     return Employee;}

 public String getDName(){
     return DName;
 }

@Override
public String toString() {
    return "\n Department:{" + DName + " }" +Employee +  '}';
}

}`

最后是类项目:`Public Class Project extends Department

Department Department ;
String projecttName;
Project(){

}

public Project(Department Department, String DepartmentName) {
    this.Department = Department;
    this.projecttName = DepartmentName;
}

public Project(Department Department, String DepartmentName, String DName) {
    this.Department = Department;
    this.projecttName = DepartmentName;
}

public Project(Department Department, String DepartmentName, commpany.Employee Employee, String DName, long ID, String Name, String position, String DateOfBirth, double Salary) {
    super(Employee,Employee , DName, ID, Name, position, DateOfBirth, Salary);
    this.Department = Department;
    this.projecttName = DepartmentName;
}

public Department getDepartment() {
    return Department;
}

public String getDepartmentName() {
    return projecttName;
}

@Override
public String toString() {
    return "\n Project :" +projecttName+" {" + Department + '}';
}

}`我的问题是:同一部门的第二个员工不在打印中>>有什么问题?

共有2个答案

端木兴国
2023-03-14

你的问题就在这里

public class Department extends Employee { 
Employee Employee; 
private String DName;

    Department(){

    }



    public Department(Employee Employee,Employee E, String DName) {
        this.Employee = E;
        this.Employee = Employee;
        this.DName = DName;

    }

您只有一个实例字段employee(注意变量的名称以小写或下划线开头)。

执行此代码时

this.Employee = E;
this.Employee = Employee;

this.employee换句话说,它是您的私有变量,只需重写

解决方法是:两个实例变量employee1;员工E2

然后您的构造函数看起来就像

public Department(Employee e1,Employee e2, String DName) {
    this.e1 = e1;
    this.e2 = e2;
    this.DName = DName;

}

此外,如果要将两个以上的员工添加到特定部门,请使用列表 MyList 数组

隗高旻
2023-03-14

您将两个员工分配给同一个变量,这意味着一个员工将被丢弃

this.Employee = E;
this.Employee = Employee;

如果您想要相同的两个雇员,您必须保存这两个雇员,并在toString()中打印这两个雇员。

提示:如果您想知道如何做到这一点,我建议您使用您的IDE生成这段代码。你不必自己写。;)

 类似资料:
  • 12.5.1 通过 @ISA 继承 如果 @ISA 包含多于一个包的名字,包的搜索都是从左向右的顺序进行的。这些搜索是由浅 入深的,因此,如果你有一个 Mule 类有象下面这样的继承关系: package Mule; our @ISA= ("Horse", "Donkey"); Perl 将首先在 Horse 里(和他的任何前辈类里,比如 Critter)查找任何在 Mule 里找

  • 首先,你需要理解包和模块;请看第十章,包,和第十一章,模块。你还需要知道引用和 数据结构;参阅第八章,引用和第九章,数据结构。同样,知道一些面向对象的编程方法 (OOP)也是很有用的,所以下一节开始我们给就 OOL(面向对象的语言)上一小节课。 12.1 简单复习一下面向对象的语言 对象是一个数据结构,带有一些行为。我们通常把这些行为称为对象的直接动作,有时候 可以把这些对象拟人化。比如,我们可能

  • 第十一章介绍了window对象及其客户端javascript所扮演的核心角色:它是客户端javascript程序的全局对象。本章介绍window对象的属性和方法,这些属性定义了不同的API,但是只有一部分实际上和浏览器窗口相关。window对象是以窗口命名的。 1节展示如何使用setTimeout()和setInterval()来注册一个函数,并在指定的时间后调用它。 2节讲述如何使用locati

  • 类是描述了一组有共同行为的对象。由类描述的对象称为类的一个实例。类指定了其实例拥有的属性(原文为slot卡槽)的名称,而这些属性的值由实例自身来进行填充。类同样也指定了可以应用于其实例的方法(method)。属性值可以是任何形式,但方法的值必须是过程。 类具有继承性。因此,一个类可以是另一个类的子类,我们称另一个类为它的父类。一个子类不仅有它自己“直接的”属性和方法,也会继承它的父类的所有属性和方

  • 我有Object1和Object2。现在,我想映射对象3,属性来自1 比方说,我有两个目标: 现在,有了这些,我想把它映射进去 哪里,first_name 现在,我的问题是,怎么做? 然而,目前,我正在这样做 但是,在这里,我必须在addressToView()中手动编写映射。 因此,有没有办法避免这种情况? 或者,处理此类情况的首选方式是什么?

  • 我对hibernate中如何使用第一级和第二级缓存有一些了解。与此相关的问题很多-是的,我同意 但我的困惑是。在第一级缓存中,除非我提交事务,否则我的数据不会持久化到db中,因此其他会话在此之前不会知道这些更改。如果二级缓存将实体带到会话工厂级别!这是否意味着即使在我提交事务之前,我在一个会话中的更改也可以被其他会话使用?? 使用二级缓存时何时更新到dB??在第一次,它将在结束事务时发生 我引用了