2021-05-12 14:32:11
Java編寫員工薪資表
java中的類不支援多重繼承,一個類只能有一個超類,那怎麼解決呢,介面在各個程式可以完美解決這個問題,實現 多重繼承的功能
1
首先開啟eclipse
2
新建一個java專案,名字隨意起
3
名字起好後,點選完成
4
右鍵點選專案名稱,新建,類
5
類的名字叫TextInterface
包的名字叫 com.zf.s2
點選完成
6
首先建立一個員工類
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;
}
}
7
定義輸出二維表的介面
interface PersonForm {
public int getFormCol();// 獲得表格的列數
public int getFormRow();// 獲得表格的行數
public String getValue(int row, int col);// 獲得指定的某行某列的值
public String getColName(int col);// 獲得指定的列名
}
8
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];
}
}
9
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;
}
}
}
10
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();
}
}
}
11
public class TextInterface {// 操作介面的類
public static void main(String[] args) {// java程式主入口處
String[][] str = new String[][] {//建立二維陣列儲存資料
{ "namet|", "gendert|", "aget|", "salaryt|" },
{ "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();// 顯示員工薪資資訊
}
}
12
執行結果
相關文章