-2

私はオブジェクト CommissionEmployee、SalariedEmployee、HourlyEmployee を作成する 3 つの異なるクラスがあるプロジェクトに取り組んでいます。これらをメイン クラスの arraylist に追加する必要がありますが、どこが間違っているのかわかりません。

パブリック クラス 会社 {

public String companyName;
public SalariedEmployee owner;
public ArrayList<SalariedEmployee> salariedEmployee;
public ArrayList<HourlyEmployee> hourlyEmployee;
public ArrayList<CommissionEmployee> commissionEmployee;


public Company (String companyName, SalariedEmployee owner){
    this.companyName = companyName;
    this.owner = owner;
}
public void addSalariedEmployee (SalariedEmployee SalariedEmployee){
    salariedEmployee.add(SalariedEmployee); **
}

public void addHourlyEmployee (HourlyEmployee HourlyEmployee){
    //HourlyEmployee = new HourlyEmployee (name, position, ratePerHour);
    hourlyEmployee.add(HourlyEmployee);
}
    public void addCommissionEmployee (CommissionEmployee CommissionEmployee){
    //CommissionEmployee = new CommissionEmployee (,, ratePerItem);
    commissionEmployee.add(CommissionEmployee);
}

** = これは、編集者が間違っていると言っている行です。乾杯、どんな助けでも大歓迎です

4

4 に答える 4

3

パラメータにクラス名と同じ名前を付けようとしました。クラス名はパラメーター名として受け入れられません。パラメータに別の名前を付けます。ケースの異なるものでもよいでしょう。たとえば、次のようになります。

public void addSalariedEmployee (SalariedEmployee salariedEmployee){
于 2013-06-18T17:33:32.080 に答える
0

その行には同じ名前の 2 つの変数があるためです (つまり、salariedEmployee)。これがあなたのための修正です:

public void addSalariedEmployee (SalariedEmployee aSalariedEmployee){
    salariedEmployee.add(aSalariedEmployee); 
}
于 2013-06-18T17:37:29.617 に答える
0

メソッドのパラメーターはSINGLE OBJECTです。オブジェクトではなくLISTを配置しようとしています。メソッドのパラメーターを変更する必要があります

変更する場合は、イテレータ オブジェクトを処理する例を次に示します。

 public static void main(String[] args) {
    Curso curso=new Curso();
    Evento evento=new Evento();
    Publicacion publicacion=new Publicacion();

    List objectList = new ArrayList();

    objectList.add(curso);
    objectList.add(evento);
    objectList.add(publicacion);

    for(Object o:objectList){
        if(o instanceof Curso){
            //do some thing
        }
        if(o instanceof Evento){
            //do some thing
        }
        if(o instanceof Publicacion){
            //do some thing
        }
    }
}

JAVA はオブジェクトを操作し、すべてがオブジェクトであることを思い出してください。よろしく

于 2013-06-18T17:42:15.227 に答える
0

クラス名をパラメーター名として使用しています。クラス名ではなく、大文字と小文字が異なるか、他の名前にする必要があります。でもキャメルケースネームの方がいいです。

ちょうど例:

public void addSalariedEmployee (SalariedEmployee salariedEmployee)
于 2013-06-18T17:38:33.130 に答える