다양한 직원의 정보를 읽는 텍스트 파일이 있습니다. Employee 객체의 연도를 기반으로 두 개의 배열 목록을 만들었습니다. Employee에는 Salesman과 Executive라는 두 개의 하위 클래스가 있습니다. 나는 두 개의 서브 클래스를 만약 거기에 슈퍼 클래스 다음하위 클래스를 분할해야하는지 잘 모르겠 음
를 호출 할 수 없기 때문에 나는 쉼표로를 분할하는 방법 궁금하면 세일즈맨 클래스
public class Salesman extends Employee
{
private double annualSales;
public Salesman(String name, double monthlySalary, double annualSales)
{
super(name,monthlySalary);
this.annualSales=annualSales;
}
public double getAnnualSales() {
return annualSales;
}
public void setAnnualSales(double annualSales) {
this.annualSales = annualSales;
}
public double annualSalary()
{
double commision=annualSales*0.02;
if (commision>20000)
{
commision=20000;
}
double totalSalary=super.annualSalary()+commision;
return totalSalary;
}
public String toString()
{
return super.toString()+"\nAnnual Sales: "+annualSales;
}
}
에게 직원 클래스
public class Employee
{
private String name;
private double monthlySalary;
public Employee(String line)
{
String[]split=line.split(",");
name=split[0];
monthlySalary=Double.parseDouble(split[1]);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getMonthlySalary() {
return monthlySalary;
}
public void setMonthlySalary(double monthlySalary) {
this.monthlySalary = monthlySalary;
}
public double annualSalary()
{
return monthlySalary*12;
}
public String toString()
{
String str;
str="Name: "+name;
str+="\nMonthly Salary: "+monthlySalary;
return str;
}
}
에게있어 이그제큐티브 클래스
public class Executive extends Employee
{
private double stockPrice;
public Executive(String name, double monthlySalary, double stockPrice)
{
super(name,monthlySalary);
this.stockPrice=stockPrice;
}
public double getStockPrice() {
return stockPrice;
}
public void setStockPrice(double stockPrice) {
this.stockPrice = stockPrice;
}
public double annualSalary()
{
double bonus=0;
if(stockPrice>50)
{
bonus=30000;
}
double totalSalary=super.annualSalary()+bonus;
return totalSalary;
}
public String toString()
{
return super.toString()+"\nStock Price: "+stockPrice;
}
}
그리고 드라이버 클래스
import java.io.*;
import java.util.*;
public class employeeDriver
{
public static void main(String[] args)
{
String input;
Scanner readInput=null;
Scanner readFile = null;
try
{
readFile=new Scanner(new File("C:\\mywork\tester.txt"));
}
catch(FileNotFoundException e)
{
System.out.println("The file can't be opened");
System.exit(0);
}
List<Employee> firstList= new ArrayList<>();
List<Employee> secondList= new ArrayList<>();
while(readFile.hasNextLine())
{
//To be inserted
}
}
}
귀하의 질문에 대한 명확하지 않습니다, 당신은 정교한 수 있습니까? –
죄송합니다. 세 클래스 모두에 대해 split 메소드를 사용해야하는지 아니면 수퍼 클래스에만 사용해야하는지 궁금합니다. 내 하위 클래스 생성자에 대해 여전히 수퍼 클래스를 호출해야하는지 궁금합니다. – Matt