标签:ndk clerk color strong 对象数组 对象 基础 ret div
要求程序描述出如下的对应关系:
既然是数据表与简单Java类,有如下要求(实际开发中的简单Java类的设计原则):
class Emp{
private int eid ;
private String ename ;
private String job ;
private double sal ;
private double comm ;
public Emp(int eid,String ename,String job,double sal,double comm) {
this.eid = eid ;
this.ename = ename ;
this.job = job ;
this.sal = sal ;
this.comm = comm ;
}
public String getInfo() { // 返回类完整信息的方法,觉得混淆可以写getEmpInfo()
return "【EMP】id = " + this.eid + ",name = " + this.ename +
",job = " + this.job + ",salary = " + this.sal + ",commission = " + this.comm ;
}
}
class Dept{
private int did ;
private String dname ;
private String loc ;
public Dept(int did,String dname,String loc) {
this.did = did ;
this.dname = dname ;
this.loc = loc ;
}
public String getInfo() { // 返回类完整信息的方法,觉得混淆可以写getDeptInfo()
return "【DEPT】id = " + this.did + ",name = " + this.dname +
",location = " + this.loc ;
}
}
在Emp类中加入:
private Emp mgr ; // 描述雇员的领导
private Dept dept ; // 描述雇员所在部门
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 ;
}
在Dept类中加入:
private Emp [] emps ;
public void setEmps(Emp [] emps){
this.emps = emps ;
}
public Emp[] getEmps(){
return this.emps ;
}
class Emp{
private int eid ; // 员工工号
private String ename ; // 员工姓名
private String job ; // 职位
private double sal ; // 薪水
private double comm ; // 佣金
private Emp mgr ; // 描述雇员的领导
private Dept dept ; // 描述雇员所在部门
public Emp(int eid,String ename,String job,double sal,double comm) {
this.eid = eid ;
this.ename = ename ;
this.job = job ;
this.sal = sal ;
this.comm = comm ;
}
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 String getInfo() { // 返回类完整信息的方法,觉得混淆可以写getEmpInfo()
return "【EMP】id = " + this.eid + ",name = " + this.ename +
",job = " + this.job + ",salary = " + this.sal + ",commission = " + this.comm ;
}
}
class Dept{
private int did ; // 部门编号
private String dname ; // 部门名称
private String loc ; // 所在位置
private Emp[] emps ;
public Dept(int did,String dname,String loc) {
this.did = did ;
this.dname = dname ;
this.loc = loc ;
}
public void setEmps(Emp[] emps){
this.emps = emps ;
}
public Emp[] getEmps(){ // 注意这里返回值是数组,输出时使用for循环
return this.emps ;
}
public String getInfo() { // 返回类完整信息的方法,觉得混淆可以写getDeptInfo()
return "【DEPT】id = " + this.did + ",name = " + this.dname +
",location = " + this.loc ;
}
}
public class TestDemo { // 设置开发需求
public static void main(String args[]) {
// 第一步:设置类对象间的关系
// 1、分别创建各类的实例化对象
Dept depta = new Dept(10,"ACCOUNTING","New York") ;
Emp ema = new Emp(4396,"Dexter","CLERK",800.0,0.0) ;
Emp emb = new Emp(4728,"Tsukishima Kei","MANAGER",2500.0,0.0) ;
Emp emc = new Emp(1230,"Toono Takaki","PRESIDENT",4500.0,0.0) ;
// 2、设置对象间的引用关系
// 2.1 设置雇员与领导的关系
ema.setMgr(emb) ; // emb是ema的领导
emb.setMgr(emc) ; // emc是emb的领导,emc没有领导
// 2.2 设置雇员与部门的关系
ema.setDept(depta) ;
emb.setDept(depta) ;
emc.setDept(depta) ;
// 2.3 设置部门与雇员的关系
depta.setEmps(new Emp[] {ema,emb,emc}) ; // Emp[] emps = new Emp[] {ema,emb,emc}
// 第二步:根据关系取出数据
// 3、一个部门有多个雇员,并且可以输出一个部门的完整信息(包括雇员信息)
System.out.println(depta.getInfo()) ; // 输出部门的信息
for(int x= 0 ; x < depta.getEmps().length ; x++){ // 输出部门所有部员的信息
System.out.println("\t##" + depta.getEmps()[x].getInfo()) ;
if(depta.getEmps()[x].getMgr() != null){ // 领导不为空(有领导)时输出部员的领导信息
System.out.println("\t\t@@" + depta.getEmps()[x].getMgr().getInfo()) ;
}
}
System.out.println("===============================================================") ;
// 4、可以根据一个雇员找到雇员对应的领导信息和雇员所在的部门信息
System.out.println(ema.getInfo()) ; // 输出雇员(任意一个)的信息
if(ema.getMgr() != null){ // 领导不为空(有领导)时输出部员的领导信息
System.out.println("\t##" + ema.getMgr().getInfo()) ;
}
if(ema.getDept() != null){ // 部门不为空(有部门)时输出部员的部门信息
System.out.println("\t\t@@" + ema.getDept().getInfo()) ;
}
}
}
阿里云【名师课堂】Java面向对象开发41:【第03个代码模型】综合案例:数据表与简单Java类(一对多)
标签:ndk clerk color strong 对象数组 对象 基础 ret div
原文地址:https://www.cnblogs.com/playerone/p/13093207.html