萬盛學電腦網

 萬盛學電腦網 >> 網頁制作 >> xml編程 >> Java編寫員工薪資表

Java編寫員工薪資表

class="area"> java中的類不支持多重繼承,一個類只能有一個超類,那怎麼解決呢,接口在各個程序可以完美解決這個問題,實現 多重繼承的功能        
方法/步驟 首先打開eclipse        
新建一個java項目,名字隨意起        
名字起好後,點擊完成        
右鍵點擊項目名稱,新建,類        
類的名字叫TextInterface
包的名字叫 com.zf.s2 點擊完成          
首先創建一個員工類 class Employee {// 員工類 private String name;// 員工名稱 private String gender;// 員工性別 private int age;// 員工年齡 private int salary;// 員工薪資 public Employee(String name, String gender, int age, int salary) { super(); this.name = name; this.gender = gender; this.age = age; this.salary = salary; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getSalary() { return salary; } public void setSalary(int salary) { this.salary = salary; } }          
定義輸出二維表的接口
interface PersonForm { public int getFormCol();// 獲得表格的列數  
public int getFormRow();// 獲得表格的行數  
public String getValue(int row, int col);// 獲得指定的某行某列的值  
public String getColName(int col);// 獲得指定的列名 }          
class FormA implements PersonForm {// 定義一個類實現接口 String[][] data;// 定義一個二維數組 public FormA(String[][] data) {// 帶參數的構造方法 this.data = data; } public String getColName(int col) {// 獲得指定的列名 return data[0][col]; } public int getFormCol() {// 獲得表格的列數 return data[0].length; } public int getFormRow() {// 獲得表格的行數 return data.length - 1; } public String getValue(int row, int col) {// 獲得指定的某行某列的值 return data[row + 1][col]; } }          
class FormB implements PersonForm {// 定義一個類實現接口 private Employee[] data; public FormB(Employee[] data) {// 帶參數的構造方法 this.data = data; } public String getColName(int col) { switch (col) { case 0: return "姓名\t|"; case 1: return "性別\t|"; case 2: return "年齡\t|"; case 3: return "工資\t|"; default: return null; } } public int getFormCol() { return 4; } public int getFormRow() { return data.length; } public String getValue(int row, int col) { switch (col) { case 0: return data[row].getName(); case 1: return data[row].getGender(); case 2: return data[row].getAge() + ""; case 3: return data[row].getSalary() + ""; default: return null; } } }          
class Table {// 表格類 private PersonForm form; public Table(PersonForm form) {// 帶參數的構造方法 this.form = form; } public void display() {// 顯示格式和取值 for (int i = 0; i < form.getFormCol(); i++) {// 循環顯示列名 System.out.print(form.getColName(i)); } System.out.println(); System.out.println("---------------------------------"); for (int i = 0; i < form.getFormRow(); i++) {// 循環顯示行信息 for (int j = 0; j < form.getFormCol(); j++) {// 循環顯示列信息 System.out.print(form.getValue(i, j) + "\t|"); } System.out.println(); } } }          
public class TextInterface {// 操作接口的類 public static void main(String[] args) {// java程序主入口處 String[][] str = new String[][] {//創建二維數組存儲數據 { "name\t|", "gender\t|", "age\t|", "salary\t|" }, { "Tom", "male", "20", "2000" }, { "Lingda", "female", "21", "2100" }, { "Susan", "female", "22", "2200" }, { "Ansen", "female", "24", "2500" } }; PersonForm form=new FormA(str);//接口變量引用類對象 Table table1=new Table(form);//創建表格實例 table1.display();// 顯示員工薪資信息 System.out.println("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"); Employee em1 = new Employee("湯姆", "男", 20, 2000);// 創建員工對象用一維數組存儲 Employee em2 = new Employee("玲達", "女", 21, 2100); Employee em3 = new Employee("蘇薩", "女", 22, 2200); Employee em4 = new Employee("愛瑞卡", "男", 23, 2300); Employee em5 = new Employee("安臣", "女", 24, 2500); Employee[] data = { em1, em2, em3, em4, em5 };// 創建員工數組 PersonForm form1 = new FormB(data);//接口變量引用類對象 Table table2 = new Table(form1);// 創建表格實例 table2.display();// 顯示員工薪資信息 } }          
運行結果              
 
copyright © 萬盛學電腦網 all rights reserved