Java简单类(部门、领导、雇员关系)
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简单类(部门、领导、雇员关系)的更多相关文章
- Java推断类和实例的关系
通常我们使用instanceOf关键字来推断一个对象是否是类的实例,近期博主看到isInstance关键字,不解与instanceOf的差别,故度娘了一下,顺便涨了一下姿势. Java中推 ...
- Java简单类——双向一对多映射
class Item { // 父栏目 private int iid ; private String name ; private String note ; private Subitem su ...
- Java简单类——多对多映射
class Admin { private String aid ; private String password ; private Role role ; public Admin(String ...
- java 简单类
package 面向对象编程_封装性; //1.类名称必须存在有意义,例如Book.Emp //2.类之中所有的属性必须用private封装,封装后的属性必须提供有setter和getter方法 // ...
- 第四周总结和实验二Java简单类与对象
实验目的 掌握类的定义,熟悉属性.构造函数.方法的使用,掌握用类作为类型声明变量和方法返回值: 理解类和对象的区别,掌握构造函数的使用,熟悉通过对象名引用实列的方法和属性: 理解static修饰对类. ...
- 第四周课程总结与第二次实验报告(Java简单类与对象)
1.写一个名为Rectangle的类表示矩形.其属性包括宽width.高height和颜色color,width和height都是double型的,而color则是String类型的.要求该类具有: ...
- Java面向对象---类与对象的关系
类是对某一类事物的描述,是抽象的.概念上的意义.对象是实际存在的该类事物的每一个个体,也被称为实例. 创建对象:包括声明对象和实例化对象 Person person;//声明 person = new ...
- Java简单类——一对多映射(省、市)
class Province { private int pid ; private String name ; private City cities [] ; public Province (i ...
- 【47】java的类之间的关系:泛化、依赖、关联、实现、聚合、组合
java的类之间的关系:泛化.依赖.关联.实现.聚合.组合 泛化: • 泛化关系(Generalization)也就是继承关系,也称为"is-a-kind-of"关系,泛化关系用于 ...
随机推荐
- zookeeper启动错误 transaction type: 2 error: KeeperErrorCode = NoNode for /hbase
hbase伪分布式,与zookeeper同一台机器的时候,运行一段时间,启动zookeeper的时候,日志中有如下错误,导致无法启动zookeeper java.io.IOException: Fai ...
- Codeforces 615C Running Track(DP + Trie树)
题目大概说给两个串,问最少要用多少个第一个串的子串(可以翻转)拼成第二个串. UVa1401,一个道理..dp[i]表示前缀i拼接成功所需最少的子串,利用第一个串所有子串建立的Trie树往前枚举转移. ...
- 20130625修改hbase的hbase-env导致导出器导出数据的速度变慢
将hbase的 export HBASE_OPTS="-ea -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode" 改为 export ...
- gson 简要使用
http://www.cnblogs.com/chenlhuaf/archive/2011/05/01/gson_test.html 发现了google的gson,因为之前对于protocolbuf有 ...
- Python for Informatics 第11章 正则表达式三(译)
注:文章原文为Dr. Charles Severance 的 <Python for Informatics>.文中代码用3.4版改写,并在本机测试通过. 11.2 用正则表达式抽取数据 ...
- 在ScrollView下加入的组件,不能自动扩展到屏幕高度
ScrollView中的组件设置android:layout_height="fill_parent"不起作用的解决办法 在ScrollView中添加一个android:fillV ...
- UILabel 的属性(用法)方法
Label 中常用的方法属性 UILabel *label =[[UILabel alloc]initWithFrame:CGRectMake(90, 100, 140, 40)];//设置Label ...
- [Cocos2D-x For WP8]Sprite精灵
精灵(Sprite)是游戏里面的角色,比如敌人,游戏里面运动的物体等等,所以精灵是游戏里面一个非常常见的概念,几乎无处不在.在Cocos2D-x里面精灵是用CCSprite类来进行表示的,它可以用一张 ...
- 【BZOJ1270】1270: [BeijingWc2008]雷涛的小猫 DP
Description Input Output Sample Input Sample Output 8 HINT Source 唉这么蠢的Dp没一下子看出来,Dp真是太弱了啦. #includ ...
- 配置1000条ACE的脚本
配置1000条ACE的脚本 测试 python 引言 在路由器或者交换机产品中,手工配置大量shell命令时,难免繁琐且效率低下,鉴于CRT中支持多种脚本语言,因此可通过脚本执行大量重复的shell配 ...