ArrayList、HashMap 与 员工类(程序员、经理的结合使用) 相当于集合与继承的总结

  1 package Day28ketangzuoye;
  2 
  3 import java.util.ArrayList;
  4 import java.util.HashMap;
  5 import java.util.Map;
  6 
  7 public class EmployeeTest {
  8 
  9     public static void main(String[] args) {
 10         Emp se1=new SE(0001,"蔡正",true,6000,80);
 11         Emp se2=new SE(0002,"丁陆",true,7000,89);
 12         
 13         Emp pm1=new PM(1001,"王拥江",true,9000,"一年",3000);
 14         Emp pm2=new PM(1002,"贝杰明",true,13000,"七年",5000);
 15         
 16         System.out.println("ArrayList");
 17         ArrayList<Emp> list=new ArrayList<Emp>();
 18         list.add(se1);
 19         list.add(se2);
 20         list.add(pm1);
 21         list.add(pm2);
 22         SE e;
 23         PM m;
 24         for(Emp p:list){
 25             if(p instanceof SE){
 26                 e=(SE)p;
 27                 e.show();
 28             }else if(p instanceof PM){
 29                 m=(PM)p;
 30                 m.show();
 31             }else{
 32                 System.out.println("出错!");
 33             }
 34         }
 35         
 36         System.out.println("\n\n HashMap");
 37         Map<String,Emp> map=new HashMap<String,Emp>();
 38         map.put("蔡正",se1);
 39         map.put("丁陆",se2);
 40         map.put("王拥江",pm1);
 41         map.put("贝杰明",pm2);
 42         String[] str={"蔡正","丁陆","王拥江","贝杰明"};
 43         Emp p;
 44         for(int i=0;i<map.size();i++){
 45              p=map.get(str[i]);
 46             if(p instanceof SE){
 47                 e=(SE)p;
 48                 e.show();
 49             }else if(p instanceof PM){
 50                 m=(PM)p;
 51                 m.show();
 52             }else{
 53                 System.out.println("出错!");
 54             }
 55         }
 56         
 57     }
 58 }
 59 
 60 class Emp {
 61     public  int id;
 62     public  String name;
 63     public  boolean gender;
 64     public  double salary;
 65 
 66     
 67     public Emp() {
 68         super();
 69     }
 70 
 71     public Emp(int id, String name, boolean gender, double salary) {
 72         super();
 73         this.id = id;
 74         this.name = name;
 75         this.gender = gender;
 76         this.salary = salary;
 77     }
 78 
 79     public void show(){};
 80 }
 81 
 82 class SE extends Emp {
 83     int hot;
 84 
 85     public SE(int id, String name, boolean gender, double salary,int hot) {
 86         super(id,name,gender,salary);
 87         this.hot = hot;
 88     }
 89 
 90     @Override
 91     public void show() {
 92         System.out.println("SE [id=" + id + ", name=" + name + ", gender="
 93                 + gender + ", salary=" + salary + ", hot=" + hot + "]");
 94     }
 95 }
 96 
 97 class PM extends Emp{
 98     String exp;
 99     double bonus;
100     
101     
102     public PM(int id, String name, boolean gender, double salary,String exp, double bonus) {
103         super(id,name,gender,salary);
104         this.exp = exp;
105         this.bonus = bonus;
106     }
107 
108 
109     @Override
110     public void show() {
111         System.out.println("PM [id=" + id + ", name=" + name + ", gender="
112                 + gender + ", salary=" + salary + ", exp=" + exp + ", bonus=" + bonus + "]");
113     }
114 }
 1 ArrayList
 2 SE [id=1, name=蔡正, gender=true, salary=6000.0, hot=80]
 3 SE [id=2, name=丁陆, gender=true, salary=7000.0, hot=89]
 4 PM [id=1001, name=王拥江, gender=true, salary=9000.0, exp=一年, bonus=3000.0]
 5 PM [id=1002, name=贝杰明, gender=true, salary=13000.0, exp=七年, bonus=5000.0]
 6 
 7 
 8  HashMap
 9 SE [id=1, name=蔡正, gender=true, salary=6000.0, hot=80]
10 SE [id=2, name=丁陆, gender=true, salary=7000.0, hot=89]
11 PM [id=1001, name=王拥江, gender=true, salary=9000.0, exp=一年, bonus=3000.0]
12 PM [id=1002, name=贝杰明, gender=true, salary=13000.0, exp=七年, bonus=5000.0]

 

posted @ 2016-09-28 17:56  奋斗的少年WH  阅读(296)  评论(0编辑  收藏  举报