2016-03-22 18 views
-3

私はまだプログラミングには新しく、ゲームを自動的に売買するプログラムを書くことを試みています(お金がある場合)。クラスから別のクラスのArrayListに変数を取得する方法

import java.time.LocalDate; 

public class Main { 
    public static void main(String[] args) { 
     int releaseJaar1 = LocalDate.now().getYear() - 1; // 1 year ago 
     int releaseJaar2 = LocalDate.now().getYear() - 2; // 2 years ago 
     Game g1 = new Game("Just Cause 3", releaseJaar1, 49.98); 
     Game g2 = new Game("Need for Speed: Rivals", releaseJaar2, 45.99); 
     Game g3 = new Game("Need for Speed: Rivals", releaseJaar2, 45.99); 
     Persoon p1 = new Persoon("Eric", 200); 
     Persoon p2 = new Persoon("Hans", 55); 
     Persoon p3 = new Persoon("Arno", 185); 
     System.out.println("p1 buys g1:" + (p1.koop(g1) ? "" : " not") + " bought"); 
     System.out.println("p1 buys g2:" + (p1.koop(g2) ? "" : " not") + " bought"); 
     System.out.println("p1 buys g3:" + (p1.koop(g3) ? "" : " not") + " bought"); 
     System.out.println("p2 buys g2:" + (p2.koop(g2) ? "" : " not") + " bought"); 
     System.out.println("p2 buys g1:" + (p2.koop(g1) ? "" : " not") + " bought"); 
     System.out.println("p3 buys g3:" + (p3.koop(g3) ? "" : " not") + " bought"); 
     System.out.println("\np1: " +p1+ "\n\np2: " +p2+ "\n\np3: " +p3+ "\n"); 
     System.out.println("p1 sells g1 aan p3:"+(p1.verkoop(g1, p3) ? "" : " not")+" sold"); 
     System.out.println("p2 sells g2 aan p3:"+(p2.verkoop(g2, p3) ? "" : " not")+" sold"); 
     System.out.println("p2 sells g1 aan p1:"+(p2.verkoop(g1, p1) ? "" : " not")+" sold"); 
     System.out.println("\np1: " +p1+ "\n\np2: " +p2+ "\n\np3: " +p3+ "\n"); 
    } 
} 

そして、ここでコードがそれらを販売/購入しているゲームや人のために使用されています。ここ

は、「メイン」のコードです。


それは彼らの予算である場合、彼らはそれを持っていけないとあれば「クープ」の方法は、ゲームを買う、

「verkoopは」人がすでに持っているゲームを使用し、他にそれらを販売人(彼らは予算を持っているし、ゲームを所有していけない場合)


をしかし、私はゲームのクラスから情報を取得する必要があり、私は実際にどのように知らないため問題は、myGames.add()です。

import java.util.*; 

public class Persoon { 
    private String name; 
    private double budget; 
    private ArrayList<Game> myGames; 

    public Persoon(String nm, double bud) { 
     name = nm; 
     budget = bud; 
    } 

    public Persoon() { 
     myGames = new ArrayList<Game>(); 
    } 

    public boolean koop(Game g) { 
     if (g.CurrentWorth() <= budget) { 
      budget -= g.CurrentWorth(); 
      myGames.add();      //the problem 
      return true; 
     } else { 
      return false; 
     } 
    } 



    public boolean verkoop(Game g, Persoon buyer) { 
     return true;         //yet to write 
    } 

    public String toString() { 
     return name + "heeft een budget van " + budget + " en bezit de volgende games: "; 
    } 
} 

public class Game { 
    private String name; 
    private int releaseJaar; 
    private double newPrice; 

    public Game(String nm, int rJ, double nwpr) { 
     name = nm; 
     releaseJaar = rJ; 
     newPrice = nwpr; 
    } 

    public String getNaam() { 
     return name; 
    } 

    public double CurrentWorth() { 
     int jaarVerschil = LocalDate.now().getYear() - this.releaseJaar; 
     return newPrice * Math.pow((0.7), jaarVerschil); 
    } 

    public boolean equals(Object andereObject) { 
     boolean gelijkeObjecten = false; 

     if (andereObject instanceof Game) { 
     Game andereGame = (Game) andereObject; 

     if (name.equals(andereGame.name) && 
      releaseJaar == (andereGame.releaseJaar) && 
      newPrice == (andereGame.newPrice)) { 
       gelijkeObjecten = true; 
     } 
     } 
     return gelijkeObjecten; 
    } 

    public String toString() { 
     return name + ", uitgegeven in " + releaseJaar + " 2014; " + "nieuwprijs: " + newPrice + " nu voor: €" + CurrentWorth(); 
    } 
} 
+0

nullであるので、あなたは、myGamesを初期化しませんでしたか?単にオブジェクト自体を渡すことができます。つまり: 'myGames.add(g)' – DCruz22

+0

もし私がそうするなら、NullPointerExceptionエラーが発生しています... – Thidal

+0

パラメータがnullであるかどうかチェックしましたか? – DCruz22

答えて

0

あなたは `myGames.add()`の値を必要とする理由、それは

+0

彼は 'Persoon'クラスのコンストラクタでそれをやった – DCruz22

関連する問題