2015-10-24 43 views
0
public class Member 
{ 

    private String name; 
    private String alias; 
    public int balance; 

    /** 
    * Constructor for objects of class Member 
    */ 
    public Member(String fullName, String nickname) 
    { 
     this.name = fullName; 
     this.alias = nickname; 
     this.balance = 0; 
    } 
    public void setBalance(int account) 
    { 
     if(account > 0) 
     { 
      balance = balance + account; 
     } 
     else 
     { 
      System.out.println("You have not entered a valid number"); 
     } 
    } 
} 
import java.util.ArrayList; 

public class Lan 
{ 
    private ArrayList<Member> members; 

    public Lan() 
    { 
     members = new ArrayList<Member>(); 
    } 

    public void addMember(Member newMember) 
    { 
     if(balance >= 200) 
     { 
      this.members.add(newMember); 
     } 
     else 
     { 
      System.out.println("You dont have enough money to enter"); 
     } 

    } 
} 

Member類,我得到了一個平衡點,在那裏你把成員「錢」的平衡,並在Lan類,我希望它如果成員的餘額= 200,則可以輸入Lan「將成員添加到陣列中」。我無法使餘額字段按照它的樣子行事,並將其導入Lan類。的Java BlueJ的類會員/ LAN

+0

if(balance> = 200)'if(newMember.balance> = 200)'if? – Tom

+0

非常感謝湯姆,它的工作! :D – pikkstup

回答

0

讓我們檢查addMember方法:

public void addMember(Member newMember) 
{ 
    if(balance >= 200) 
    { 
     this.members.add(newMember); 
    } 
    //... 
} 

在這裏,你要決定是否newMember應該被添加到列表中members。問題是balance無法解析,因爲在Lan類或addMember方法中沒有這樣的變量。

這可以很容易固定,因爲你試圖訪問存儲在newMember對象領域,所以你可以改變

if (balance >= 200) 

if (newMember.balance >= 200) 

這樣,你直接訪問newMember對象中的balance字段的值。

請注意,此訪問只有可能,因爲該字段的訪問修飾符是public。如果是private,像其他領域,你需要像一個getter方法:

public int getBalance() 
{ 
    return belance; 
} 

,並使用它像這樣:

if (newMember.getBalance() >= 200) 

因爲它總是使用encapsulation一個好主意,最好將此字段設置爲private並使用吸氣劑。

+0

這真的很有幫助的人!我改變它爲私人,現在就這樣做了。現在,如果我要打印誰在Lan上,所有已註冊的成員,是否需要使用interator?我該怎麼做?感謝所有的幫助。 – pikkstup

+0

如果這個答案對你有幫助,那麼不要忘記[accpet](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)它。要打印清單,只需重寫'Member'中的'toString'方法(在互聯網上有很多示例),然後調用'System.out.println(members)'。 – Tom