首頁 > 軟體

Java編寫員工薪資表

2019-12-10 03:06:18

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

執行結果



IT145.com E-mail:sddin#qq.com