私はまだプログラミングには新しく、ゲームを自動的に売買するプログラムを書くことを試みています(お金がある場合)。クラスから別のクラスの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();
}
}
nullであるので、あなたは、myGamesを初期化しませんでしたか?単にオブジェクト自体を渡すことができます。つまり: 'myGames.add(g)' – DCruz22
もし私がそうするなら、NullPointerExceptionエラーが発生しています... – Thidal
パラメータがnullであるかどうかチェックしましたか? – DCruz22