我有A班,我的主要班级。在这个类中,我创建了一个B类classB B = new B(parameters);
的实例,并使用classB.method
来调用它来访问类B中的方法和数据。我还有C类需要使用B类中的方法和数据,但是我无法弄清楚如何通过创建的对象类A来访问它,因为classB
还没有在编译时创建,我无法重新实例化它或者我当我在A类中实例化它时,丢失我加载到它的数据。
如何绕过这个并从我的C类构造函数中访问classB
?
A类的一些代码:
final private static String[] imageLocations = {"wall.png", "floor.png", "char.png"}; //Stores initial image locations
public static void main(String[] args) {
images = new LoadImages(imageLocations);
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
(new Thread(new BomberMan())).start();
}
});
}
B类的一些代码:
public class LoadImages {
private Image[] imageArray;
public LoadImages(String[] args){
imageArray = new Image[args.length];
for(int i = 0; i<args.length; i++){
imageLoader(args[i], i);
}
}
private boolean imageLoader(String imageAddress, int index){
try{
imageArray[index] = ImageIO.read(new File(imageAddress));
return true;
}catch(IOException ex){
System.out.println("PICTURE LOADING ERROR");
return false;
}
}
public Image returnImage(int index){
return imageArray[index];
}
public Image scaleImage(Image image, int width, int height){
return(image.getScaledInstance(width, height, Image.SCALE_FAST));
}
}
C类代码(目前还没有)
public class Block {
int blockID;
int playerID;
Image image;
public Block(int blockID){
this.blockID = blockID;
this.image = loadImages.returnImage(blockID); //Doesn't work
}
}