簡體   English   中英

完成的代碼,但是如何與抽象類一起使用?

[英]Completed Code, But How To Use It With Abstract Classes?

因此,我已經完成了獲取員工信息作為輸入的代碼,並且可以根據用戶的需求進行排序。 但是對於部分需求,我有兩個使用抽象類“ Employee”以及兩個子類“ TempEmployee”和“ Perm employee”。 我要在抽象類下放置什么代碼才能使其正常工作? 另外,當我進行排序時,我希望所有信息都包含在其中,因此,如果我按薪水進行排序,我希望定薪時使用該薪水的人員的姓名和部門,而不僅僅是數字的有序列表。 這可能嗎?

import java.util.Scanner;
    import java.util.ArrayList;
 import java.util.Collections;
import java.util.Arrays;


public class Assignment55_000848913
{
  public static void main(String[] args)
  {
Scanner in = new Scanner(System.in);
String Continue = "y";
int Count = 0;
int SortingChoice;
ArrayList<String> Names       = new ArrayList<String>();
ArrayList<String> Department  = new ArrayList<String>();
ArrayList<String> Designation = new ArrayList<String>();
ArrayList<Float>  Salary      = new ArrayList<Float>();

    //******************************************************//

do
{
   System.out.println("Enter Employee Name: ");
   String x = in.next();
   Names.add(x);

   System.out.println("Enter Employee Designation ('temporary or permanent'): ");
   String y = in.next();
   Designation.add(y);

   System.out.println("Enter Employee Department: ");
   String z = in.next();
   Department.add(z);

   System.out.println("Enter Employee Salary: ");
   float i = in.nextFloat();
   Salary.add(i);

   System.out.println("Do you wish to add another employee? ('y'/'n'): ");
   Continue = in.next();

   Count = Count + 1;
}
while(Continue.equals("y"));

//***********************************************************************//

System.out.println("Enter sorting Criterion Number: 1. Name, 2.Department, 3. Salary. ");
SortingChoice = in.nextInt();

if(SortingChoice == 1)
{
  Collections.sort(Names);
     for(int i=0; i<Names.size(); i++)
     {
        System.out.println(Names.get(i));
     }
}

if(SortingChoice == 2)
{
  Collections.sort(Department);
     for(int i=0; i<Department.size(); i++)
     {
        System.out.println(Department.get(i));
     }
}

if(SortingChoice == 3)
{
  for(int k=0; k<Salary.size(); k++)
  {
    if(Designation.get(k).equals("temporary"))
      {
         Salary.set(k, Salary.get(k)*1920);
      }
  }


  Collections.sort(Salary);
     for(int i=0; i<Salary.size(); i++)
     {
       System.out.print("$");
       System.out.println(Salary.get(i));
     }
}
  }
}

 // public  class Employee
  // {

 // }

 // public class TempEmployee extends Employee
     // {

//  }

//  public class PermEmployee extends Employee
//  {

//  }

抽象類的目的是為了不必重復某些事情。 因此,一個好的開始就是繼續定義PermEmployee類。 然后定義您的TempEmployee類。 無論它們共有什么變量和方法,您都可以將其放入AbstractEmployee類,並讓每個類都繼承自該類。 這樣,剩下的方法和變量將是Temp和Perm員工類所獨有的。

剩下的只是練習,學習定義抽象類的機制,我將讓您繼續閱讀。 確定什么時候該方法應該是抽象的,以及哪些方法可以在所有子類中共享,哪些方法應該具有默認行為,而這種默認行為需要在特殊情況下覆蓋。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM