私はしなければならない課題があります。私は、クラス会社を作成し、従業員クラスのオブジェクトのための雇用、火災などのいくつかのメソッドを書く必要があります。 それらは私のクラスとメソッドです:JavaのArrayListで独自のメソッドを使う方法は?
public class Company{
ArrayList <Employee> alist= new ArrayList<Employee>();
public void hire(Employee e) {
int i=0;
boolean k=false;
while(i<alist.size()) {
if (e.getLastName().equals(alist.get(i).getLastName())) {
k=true;
i++;
}
}
if (k==false) alist.add(e);
else System.out.print("Employee already exists");
}
}
public class Employee{
protected String lastname; //protected for subclasses
protected double jobposition;
public Employee(String lastname,double jobposition) {
this.lastname=lastname;
this.jobposition=jobposition;
}
public String getLastName() {
return lastname;
}
と従業員を拡張してサブクラス:
public class OfficeWorker extends Employee {
float pay, bonus;
public OfficeWorker(String lastname,double jobposition,float pay,float bonus) {
super(lastname,jobposition);
this.pay=pay;
this.bonus=bonus;
}
}
「私はこれを行うためにArrayList
を使用していたが、それはメインクラスでクラッシュし、私はメッセージを取得する方法"ArrayList"型のhire(Employee)は未定義です。 "
public static void main(String[]args) {
ArrayList <Employee> list = new ArrayList <Employee>();
Employee e1 = new OfficeWorker("Smith",0.5,2000,50);
list.hire(e1);
}
どうしてこのようにすることはできませんか?
あなたが書いた 'hire'メソッドは' Company'クラスにあります。なぜあなたは 'ArrayList <>'にあると思いますか?あなたはこれが何をすると思いますか? – David
「会社」は採用を行うクラスです。従業員をリストに追加することを意味しますか?もしそうなら、それは 'list.add(e1)'で終わりです。あなたが本当に行っていることは、 'Employee e1'を採用した' Company'を作成し、 'Company'インスタンスで作成された' ArrayList'に追加することです。 – birryree
'Company comp = new Company();のように' Company'のインスタンスを作成し、 'comp.hire(e1);'を使ってEmployeeを追加します。 CompanyクラスのEmployeesを格納しているリストがすでにあります。 – VPK