2017-10-30 13 views
-4
public class Employee { 

private int id = 0; 
private String forename = null; 
private String surname = null; 
private Salary salary = null; 
private CompanyPosition companyposition = null; 

public Employee(){ 

} 

public int getId() { 
    return id; 
} 

public String getForename() { 
    return forename; 
} 

public String getSurname() { 
    return surname; 
} 

public Salary getSalary() { 
    return salary; 
} 

public String getPositionName() { 
    return getPositionName(); 
} 

public boolean eligibleForBonus(){ 

    boolean eligibleForBonus; 

    if (salary > 40000) { 

     eligibleForBonus = true; 
    } 

    else { 
     eligibleForBonus = false; 

    } 

    return eligibleForBonus; 
} 

}オペレータが>引数の型(S)給与のために定義されていない、if文のため

をint型には、オペレータが>引数の型(S)給与、int型のために定義されていません。と言います私はJavaに慣れていないので、ここで何ができるのか分かりません。給与も別のクラスであり、給与はそのクラス内の変数です。これはダブルタイプです。

+0

あなたはクラスのオブジェクトとして 'salary'を宣言します'給料」 - あなたはそれをintとどのように比較できますか? – alfasin

+0

あなたは 'salary'クラスから' salary'変数を取り出し、それを比較する必要があります。 – ajb

+0

これを論理的に考えてみましょう。 '>'は、int、double、long、byteなどの数値変数でしか使用できない数学演算子です。給与はあなたが作成したクラスであり、数値型ではない(そして1つになることはできません)ので、 '>'は理にかなっていません。 Salaryのコードが表示されないため、Salaryのフィールドの価値を比較したいと思うかもしれません。 –

答えて

0

Salaryクラスの変数の値と比較する必要があります。他のクラスで、二重変数はsalaryと呼ばれていると仮定すると:

if (salary.salary > 40000) { 
    ... 

場合や、実際の給与量はゲッターのcalle getAmountか何かを持っています

if (salary.getAmount()) { 
    ... 
関連する問題