2016-03-22 9 views
-3

Hala programlama için yeni ve oyunları otomatik olarak satın alacak ve satacak bir program yazmaya çalışıyorum (eğer kişi para varsa). kodlar oyunlar için kullanmakBir sınıftan bir ArrayList'e başka bir sınıftaki bir değişkene nasıl ulaşılır

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"); 
    } 
} 

Ve burada satmakla/satın alıyor kişi: Burada

"ana" kodudur. onlar yok eğer


"koop" yöntemi oyunu satın alır VE o bütçelerinin ise

"verkoop" öteki bunları satan ardından kişi zaten oyunları kullanır ve kişi (bunlar bütçeye sahip vE oyunu kendi yoksa)


Ama Oyun sınıfından bilgi almak gerekir ve gerçekten nasıl bilmiyorum için sorun, myGames.add() 'dir.

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, böylece myGames ilklendirmeyecektir mi? Sadece nesneyi kendiniz geçirebilirsiniz. Yani: myGames.add (g) ' – DCruz22

+0

Bunu yaparsam, bir NullPointerException hatası alıyorum ... – Thidal

+0

Parametrenin boş olup olmadığını kontrol ettiniz mi? – DCruz22

cevap

0

Eğer `myGames.add()` değerleri ihtiyaç Neden

+0

"Persoon" sınıfının kurucusunda yaptı – DCruz22

İlgili konular