Buonasera,
Ho questo esempio che mi ha fatto nascere alcuni dubbi e avrei un paio di domande , inizio dalla prima
Ci sono 3 classi World, Tile , Player:
-Player eredita Tile perchè Player è un Tile dedicato a qualcosa di meno generico.
-World non ha sotto-classi nè super-classe e non c'entra nulla con Player e Tile se non per un qualcosa che dirò a breve.
La classe World ha tre metodi setter e getter : public String getTemperature(); public String getLight() ; public String getName();
Vengono utilizzati per conoscere la temperatura ambiente, le condizioni del tempo , il ciclo giorno/notte, il nome del mondo in cui Player vive.
World non sembra c'entrare nulla con Player , ma Player vorrebbe conoscere il valori ritornati dai metodi della classe World.
Player non ha metodi in comune con World ma fa parte del "mondo" appunto World.
-Ho provato a far ereditare World a Player attraverso Tile . Ma in Player il getter ad esempio getLigth() ritorna null.
-Ho provato a instanziare un oggetto World dentro un metodo Player ma continua a dare null.
Secondo voi il design è giusto ?o forse è sbagliato e quindi mi ritrovo avere problemi
Player
public class Player extends Tile{
public Player(String name) {
super(name);
}
@Override
public void update() {
World w;
w = new World("Giant Cave:",5000,2000,1440,900);
System.out.println(w.GetLight());
}
@Override
public void updateBounds() {
}
@Override
public void updatePostscaler() {
}
@Override
public void collision() {
}
}
Tile
public class Tile {
public Tile(String name) {
}
public void update(){}
public void updateBounds(){}
public void updatePostscaler(){}
public void collision(){}
}
Main
public class GiantCave {
private final int mWhite = 5000;
private final int mHeight = 2000;
private final int wPanel = 1440;
private final int hPanel = 900;
public GiantCave() {
Player player;
World world;
world = new World ("Giant Cave:",mWhite,mHeight,wPanel,hPanel);
world.SetLight();
System.out.println(world.GetLight());
System.out.println(world.getName());
player = new Player("Sig.Rossi");
player.update();
}
public static void main(String[] args) {
GiantCave cave = new GiantCave();
}
}
World
private String name;
private int mWidth;
private int mHeight;
private int pWidht;
private int pHeight;
private String temperature;
private String light;
public World(String name , int mWidht, int mHeight, int pWidht, int pHeight){
this.name = name;
this.mWidth = mWidht;
this.mHeight = mHeight;
this.pWidht = pWidht;
this.pHeight = pHeight;
}
public String getName()
{
return this.name;
}
public void SetTemperature(){
this.temperature = "la Temperatura è di 14°C";
}
public String GetTemperature(){
return temperature;
}
public void SetLight(){
this.light = "è l'alba.";
}
public String GetLight(){
return this.light;
}
}
Edit: corretto il post