码农的世界

2019-01-23

2019-01-25  本文已影响2人  DreamPath

数据表与简单Java类综合运用整理

设计步骤:
图片.png
package empDept;

public class Dept {
    private int detno;
    private String dname;
    private String loc;
    //一个部门有多个雇员,雇员数组
    private Emp [] emps;
        //构造器
    public Dept(){}
    public Dept(int detno,String dname,String loc){
        this.detno=detno;
        this.dname=dname;
        this.loc=loc;
    }
    //一个部门有多个雇员  关系设计
    public void setEmps(Emp [] emps){
        this.emps=emps;
    }
    public Emp [] getEmps(){
        return this.emps;
    }
    
    
    public void setDetno(int detno){
        this.detno=detno;
    }
    public int getDetno(){
        return detno;
    }
    public String getDname(){
        return dname;
    }
    public void setDname(String dname){
        this.dname=dname;
    }
    public String getLoc(){
        return loc;
    }
    public void setLoc(String loc){
        this.loc=loc;
    }
    public String getInfore(){
        return "部门编号"+this.detno+",名称"+this.dname+",位置"+this.loc;
    }
}

雇员类

package empDept;

public class Emp {
    private int empno;
    private String ename;
    private String job;
    private double sal;
    private double comm;
    private Emp mgr;//雇员领导  一个雇员有一个领导
    private Dept dept;//一个雇员属于一个部门
    //默认构造器
    public Emp(){}
    //含参数构造器
    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 void setMgr(Emp mgr){
        this.mgr=mgr;
    }
    public Emp getMgr(){
        return mgr;
    }
    public void setDept(Dept dept){
        this.dept=dept;
    }
    public Dept getDept(){
        return dept;
    }
    public int getEmpno() {
        return empno;
    }
    public void setEmpno(int empno) {
        this.empno = empno;
    }
    public String getEname() {
        return ename;
    }
    public void setEname(String ename) {
        this.ename = ename;
    }
    public String getJob() {
        return job;
    }
    public void setJob(String job) {
        this.job = job;
    }
    public double getSal() {
        return sal;
    }
    public void setSal(double sal) {
        this.sal = sal;
    }
    public double getComm() {
        return comm;
    }
    public void setComm(double comm) {
        this.comm = comm;
    }
    //字段信息
        public String getInfore(){
            return "雇员编号:"+this.empno+",姓名:"+this.ename+",职位:"+this.job+",薪水:"+this.sal+",佣金:"+this.comm;
        }
    
}

测试,输出雇员领导关系及其基本信息类

package empDept;

public class TestDemo {
public static void main(String [] args){
    //设置数据关系
    //第一步,根据已有的表结构设置数据
    //准备好所有的独立的类对象
    Dept dept =new Dept(10,"ACC","New YOURK");
    Emp empa=new Emp(3547,"due","软件程序员",8000,0.0);
    Emp empb=new Emp(5436,"gs","软件测试工程师",10000.8,0.0);
    Emp empc=new Emp(8749,"kdy","服务器开发工程师",13000.9,5.5);
    //设置彼此关系
    empa.setMgr(empb);//设置雇员领导关系
    empb.setMgr(empc);//设置雇员领导关系
    
    empa.setDept(dept);//设置部门关系
    empb.setDept(dept);//设置部门关系
    empc.setDept(dept);//设置部门关系
    dept.setEmps(new Emp[]{empa,empb,empc});//一个领导有多个雇员
    
    //取出雇员的完成关系
    //根据表结构利用引用关系取得关系数据
    System.out.println(empa.getInfore());//打印雇员基本信息
    System.out.println("\t-[领导信息]"+empa.getMgr().getInfore());//打印雇员领导信息
    System.out.println("\t-[部门信息]"+empa.getDept().getInfore());//打印雇员部门信息
    
    System.out.println("\n=======================\n");
    //取出一个部门完整信息
    
    System.out.println(dept.getInfore());//部门信息
    //输出雇员信息
    for(int i=0;i<dept.getEmps().length;i++){
        System.out.println("\t [雇员信息]"+dept.getEmps()[i].getInfore());
        if(dept.getEmps()[i].getMgr()!=null){
            System.out.println("\t\t|雇员领导"+dept.getEmps()[i].getInfore());
        }
    }
    /**雇员编号:3547,姓名:due,职位:软件程序员,薪水:8000.0,佣金:0.0
              -[领导信息]雇员编号:5436,姓名:gs,职位:软件测试工程师,薪水:10000.8,佣金:0.0
              -[部门信息]部门编号10,名称ACC,位置New YOURK

=======================

部门编号10,名称ACC,位置New YOURK
     [雇员信息]雇员编号:3547,姓名:due,职位:软件程序员,薪水:8000.0,佣金:0.0
              |雇员领导雇员编号:3547,姓名:due,职位:软件程序员,薪水:8000.0,佣金:0.0
     [雇员信息]雇员编号:5436,姓名:gs,职位:软件测试工程师,薪水:10000.8,佣金:0.0
              |雇员领导雇员编号:5436,姓名:gs,职位:软件测试工程师,薪水:10000.8,佣金:0.0
     [雇员信息]雇员编号:8749,姓名:kdy,职位:服务器开发工程师,薪水:13000.9,佣金:5.5
     */
}
}
上一篇下一篇

猜你喜欢

热点阅读