In your class Game, you can put a default value for score :
class Game{
private Score score;
public Score getScore(){
return this.score == null? this.score : new Score();
}
}
For your information :
http://docs.oracle.com/javase/specs/jls/se8/html/jls-4.html#jls-4.12.5
Each class variable, instance variable, or array component is
initialized with a default value when it is created (§15.9, §15.10.2):
For type byte, the default value is zero, that is, the value of
(byte)0.
For type short, the default value is zero, that is, the value of
(short)0.
For type int, the default value is zero, that is, 0.
For type long, the default value is zero, that is, 0L.
For type float, the default value is positive zero, that is, 0.0f.
For type double, the default value is positive zero, that is, 0.0d.
For type char, the default value is the null character, that is,
'\u0000'.
For type boolean, the default value is false.
For all reference types (§4.3), the default value is null.
In your class Game, you can put a default value for score :
EDIT:
class Game{
private Score score;
public Score getScore(){
return this.score;
}
public void setScore(Score score){
this.score = score;
}
public Score getScoreOrDefault(Score default){
if(Objects.isNull(this.score)){
setScore(default);
return default;
}
}
}
And after you can call getScoreOrDefault in passing a new Score as a parameter: