class Dept {
private int deptno ;
private String dname ;
private String loc ;
private Emp emps [] ; //多个雇员
public void setEmps(Emp [] emps) {
this.emps = emps ;
}
public Emp[] getEmps() {
return this.emps ;
}
public Dept(int deptno,String dname,String loc){
this.deptno = deptno ;
this.dname = dname ;
this.loc = loc ;
}
public String getInfo() {
return "部门编号:" + this.deptno + ",名称:" + this.dname + ",位置:" + this.loc ;
}
}
class Emp {
private int empno ;
private String ename ;
private String job ;
private double sal ;
private double comm ;
private Dept dept ;//表示对应的部门信息
private Emp mgr ; //表示雇员对应的领导
public void setMgr(Emp mgr) {
this.mgr = mgr ;
}
public Emp getMgr() {
return this.mgr ;
}
public void setDept(Dept dept){
this.dept = dept ;
}
public Dept getDept() {
return this.dept ;
}
public Emp(int empno,String ename,String job,double sal,double comm){
this.empno = empno ;
this.ename = ename ;
this.job = job ;
this.sal = sal ;
this.comm = comm ;
}
public String getInfo(){
return "雇员编号:" + this.empno + ",姓名:" + this.ename + ",职位:" + this.job + ",工资:" + this.sal + ",佣金:" + this.comm ;
}
}
public class Test2 {
public static void main(String args[]) {
Dept dept = new Dept(10,"ACCOUNTING","CHINA") ; //部门信息
Emp ea = new Emp(7369,"CHEN","CLERK",800.0,0.0);//雇员信息
Emp eb = new Emp(7902,"PENG","MANAGER",2500.0,0.0);//雇员信息
Emp ec = new Emp(7719,"KING","PRESIDENT",5000.0,0.0);//雇员信息
ea.setMgr(eb) ; //雇员与领导
eb.setMgr(ec) ; //雇员与领导
ea.setDept(dept) ; //雇员与部门
eb.setDept(dept) ; //雇员与部门
ec.setDept(dept) ; //雇员与部门
dept.setEmps(new Emp[]{ea,eb,ec}) ;
System.out.println(ea.getInfo()) ;//通过雇员找到领导信息和部门信息
System.out.println("\t|-"+ ea.getMgr().getInfo()) ;
System.out.println("\t|-"+ ea.getDept().getInfo()) ;
System.out.println("----------------------------------------") ;
System.out.println(dept.getInfo()) ;//根据部门找到所有的雇员以及每个雇员的领导信息
for (int x = 0 ;x < dept.getEmps().length ;x ++ ){
System.out.println("\t|-"+ dept.getEmps()[x].getInfo()) ;
if (dept.getEmps()[x].getMgr() != null){
System.out.println("\t|-"+dept.getEmps()[x].getMgr().getInfo()) ;
}
}
}
}

一个部门中有多个雇员,每个雇员有一个领导或者没有领导

Java简单类(部门、领导、雇员关系)的更多相关文章

  1. Java推断类和实例的关系

       通常我们使用instanceOf关键字来推断一个对象是否是类的实例,近期博主看到isInstance关键字,不解与instanceOf的差别,故度娘了一下,顺便涨了一下姿势.    Java中推 ...

  2. Java简单类——双向一对多映射

    class Item { // 父栏目 private int iid ; private String name ; private String note ; private Subitem su ...

  3. Java简单类——多对多映射

    class Admin { private String aid ; private String password ; private Role role ; public Admin(String ...

  4. java 简单类

    package 面向对象编程_封装性; //1.类名称必须存在有意义,例如Book.Emp //2.类之中所有的属性必须用private封装,封装后的属性必须提供有setter和getter方法 // ...

  5. 第四周总结和实验二Java简单类与对象

    实验目的 掌握类的定义,熟悉属性.构造函数.方法的使用,掌握用类作为类型声明变量和方法返回值: 理解类和对象的区别,掌握构造函数的使用,熟悉通过对象名引用实列的方法和属性: 理解static修饰对类. ...

  6. 第四周课程总结与第二次实验报告(Java简单类与对象)

    1.写一个名为Rectangle的类表示矩形.其属性包括宽width.高height和颜色color,width和height都是double型的,而color则是String类型的.要求该类具有: ...

  7. Java面向对象---类与对象的关系

    类是对某一类事物的描述,是抽象的.概念上的意义.对象是实际存在的该类事物的每一个个体,也被称为实例. 创建对象:包括声明对象和实例化对象 Person person;//声明 person = new ...

  8. Java简单类——一对多映射(省、市)

    class Province { private int pid ; private String name ; private City cities [] ; public Province (i ...

  9. 【47】java的类之间的关系:泛化、依赖、关联、实现、聚合、组合

    java的类之间的关系:泛化.依赖.关联.实现.聚合.组合 泛化: • 泛化关系(Generalization)也就是继承关系,也称为"is-a-kind-of"关系,泛化关系用于 ...

随机推荐

  1. 【面试题】TB

    动态库与静态库区别: 堆栈区别,这样区分的意义: 不用第三个变量,交换两个变量的值: 链表公共节点: 判断链表是否有环: 常用排序算法,哪个可以链表实现: 哪科学的好,感兴趣: 项目介绍,遇到的最大问 ...

  2. How to: 执行Action当收到数据时

      本文旨在演示ActionBlock的使用. 大致流程: 输入路径--读取字节--计算--传输到打印   // Demonstrates how to provide delegates to ex ...

  3. MyIsam和InnoDB的区别

    个人见解: 1.最主要的差别就是Innodb 支持事务处理与外键和行级锁.而MyISAM不支持 所以有用到事务处理和外键的,要用Innodb 2. InnoDB 中不保存表的具体行数,也就是说,执行s ...

  4. AngularJS进阶学习

    参考:http://***/class/54f3ba65e564e50cfccbad4b 1. AJAX:Asynchronous JavaScript and XML(异步的 JavaScript ...

  5. Spring AOP报错处理 Can not set field to $Proxy 在spring中使用事物或AOP遇到的错误

    [转] 解决方法: http://forum.springsource.org/showthread.php?85016-IllegalArgumentException-with-Applicati ...

  6. 20145304 Java第七周学习报告

    20145304<Java程序设计>第七周学习总结 教材学习内容总结 1.时间的度量: 格林威治标准时间(GMT)通过观察太阳而得,其正午是太阳抵达天空最高点之时,因地球的公转与自传,会造 ...

  7. codeforces round #234B(DIV2) C Inna and Huge Candy Matrix

    #include <iostream> #include <vector> #include <algorithm> #include <utility> ...

  8. [Cocos2d-x For WP8]矩形碰撞检测

    在游戏中我们通常会涉及到两个精灵之间的碰撞的计算,那么在Cocos2d-x里面我们通常会用矩形碰撞检测来计算两个精灵在运动的过程中是否碰撞到了.原理很简单,就是当运动的时候通过精灵的矩形坐标进行遍历来 ...

  9. 【BZOJ】1987: Zju2672 Fibonacci Subsequence

    题意 给出一个序列\(A\),求一个最长的满足fib性质的子序列,输出其长度及其元素(如果多种方案,输出位置最靠前的).(\(n \le 3000\)) 题解 容易想到dp,即\(d(i, j)\)表 ...

  10. 20145330第九周《Java学习笔记》

    20145330第九周<Java学习笔记> 第十六章 整合数据库 JDBC入门 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JD ...