2017-01-28 8 views
-1

Personsのメソッドを作成して、Personオブジェクトのすべての給与を、ArrayList内のpersonsという名前で作成したかったら、それを可能にするためには何が必要でしょうか?私はperson1をArrayListに追加したので、別の人物を追加したいのであれば、それをtotalSalary()にどのように渡すと、person1Jobのすべての給与が加算されますか? 私の主:オブジェクトのArrayListをメソッドにどのように渡すのですか?

import java.util.*; 
import java.util.ArrayList; 

public class testPersons { 

    public static void main(String[] args) { 

     Persons persons = new Persons(); 

    Address person1Address = new Address(555, "SumPlus St", "Hayward", "CA", "94544"); 
    Address person1JobAddress = new Address(1542, "High St", "Santa Cruz", "CA", "94063"); 
    ArrayList<String> person1Phone = new ArrayList<String>(); 
    person1Phone.add("555-555-555"); 
    Job person1Job = new Job("Teacher", 25000.00, person1JobAddress); 
    Person person1 = new Person("Edward John", "San Mateo", 'M', person1Address, person1Job, person1Phone); 

    persons.addPerson(person1); 

    } 
} 

私のクラス人数:

import java.util.*; 

public class Persons { 


public ArrayList<Person> personsList = new ArrayList<Person>(); 

public boolean addPerson(Person newPerson) { 
    personsList.add(newPerson); 
    return true; 
} 

public double totalSalary() { 

    } 
} 
+2

あなたはtotalSalary() ''に 'personsList'を渡す必要はありません。これはフィールドなので、自動的に 'Persons'の任意の(静的でない)メソッドでそれを使うことができます。 – qxz

+0

'totalSalary()'で 'personList'を反復しようとしましたか? 'Person'クラスも共有することができます。 – nullpointer

答えて

0

あなたはイムは、それがgetSalary機能を持っていると仮定すると、あなたの仕事のクラスを示しませんでした。

public double totalSalary() { 
     double total=0; 
     for(int i=0;i<personsList.size();i++){ 
      total+=personlist.get(i).getJob().getSalary(); 
     } 
     return total; 
    } 
1

あなたはあなたの方法addPerson()呼び出すことによって、ArrayListに新しい人を追加することができます。 総給与を計算する場合は、totalSalary()のオブジェクトを既に呼び出しているオブジェクトを呼び出してください。 totalSalaryメソッドは次のようになります。あなたが給料を計算するために人々のリストを渡したい場合は

public double totalSalary() { 
double salary = 0; 
for(Person person : this.persons) { 
    salary += person.getJob().getSalary(); 
} 
return salary; 
} 

、あなたは次のように行うことができます。

public double totalSalary(List<Person> persons) { 
    double salary = 0; 
    for(Person person : persons) { 
     salary += person.getJob().getSalary(); 
    } 
    return salary; 
} 
関連する問題