2013-09-02 2 views
0

Я нахожусь в своем классе программирования 2, и профессор хочет, чтобы мы создали класс, который в конечном итоге превратится в игру. Проблема, с которой я сталкиваюсь, заключается в том, что я не знаю, как добавить файл в класс, чтобы при использовании тестера я не получал ошибок. Я все равно ничего не должен делать с файлом. Мне просто нужно сделать пару экземпляров в тесте после моего myPlayer2, но я не уверен, как это сделать. Надеюсь, это и мой код имеет смысл. Спасибо.Добавьте простой GIF в класс

import java.io.File; 



public class myPlayer { 

private String name; 
private String gender; 
private String role; 
private int health; 
private String state; 
private File sprite = new File("MarioSprite.gif"); 
/** 
* constructor for the game player 
* @param name-- the players name 
* @param gender -- the players gender 
* @param role -- role such as boss, healer, demon, knight 
* @param health -- percentage of health 
* @param state -- whether player is alive, dead, active, inactive, sleeping 
* @param sprite -- this is the sprite file for the class 
*/ 

// the file name is MarioSprite.gif 

public myPlayer(){ 
    name = " unknown"; 
    gender = " unknown"; 
    role = " not defined"; 
    health = 0; 
    state = " not defined"; 
    sprite = null; 
} 
public myPlayer(String name, String gender, String role, int health, String state, File sprite){ 
    this.name = name; 
    this.gender = gender; 
    this.role = role; 
    this.health = health; 
    this.state = state; 
    this.sprite = sprite; 
} 
/** 
* @return the name 
*/ 
public String getName() { 
    return name; 
} 
/** 
* @param the name to set 
*/ 
public void setName(String name) { 
    this.name = name; 
} 
/** 
* @return the gender 
*/ 
public String getGender() { 
    return gender; 
} 
/** 
* @param the gender to set 
*/ 
public void setGender(String gender) { 
    this.gender = gender; 
} 
/** 
* @return the role 
*/ 
public String getRole() { 
    return role; 
} 
/** 
* @param the role to set 
*/ 
public void setRole(String role) { 
    this.role = role; 
} 
/** 
* @return the health 
*/ 
public int getHealth() { 
    return health; 
} 
/** 
* @param the health to set 
*/ 
public void setHealth(int health) { 
    this.health = health; 
} 
/** 
* @return the state 
*/ 
public String getState() { 
    return state; 
} 
/** 
* @param the state to set 
*/ 
public void setState(String state) { 
    this.state = state; 
} 
/** 
* @return the sprite 
*/ 
public File getSprite() { 
    return sprite; 
} 
/** 
* @param the sprite to set 
*/ 
public void setSprite(File sprite) { 
    this.sprite = sprite; 
} 
/* (non-Javadoc) 
* @see java.lang.Object#toString() 
*/ 
@Override 
public String toString() { 
    return "myPlayer [name=" + name + ", gender=" + gender + ", role=" 
      + role + ", health=" + health + ", state=" + state 
      + ", sprite=" + sprite + "]"; 
} 
} 

public class myPlayerTester { 

/** 
* @param args 
*/ 
public static void main(String[] args) { 
    // TODO Auto-generated method stub  
    myPlayer myPlayer1, myPlayer2, myPlayer3, myPlayer4; 

    myPlayer1 = new myPlayer(); 

    System.out.println(myPlayer1); 

    myPlayer2 = new myPlayer("SteveO", "Male", "demon", 99, "live", null); 

    System.out.println(myPlayer2); 

    myPlayer3 = new myPlayer("Gandolf", "Female", "demon", 93, "live", null); 

    System.out.println(myPlayer3); 

    myPlayer4 = new myPlayer("Roger", "Female", "demon", 69, "inactive", null); 

    System.out.println(myPlayer4); 




} 

}

+0

Я просто не хочу, чтобы myPlayer2 в тестере, чтобы отобразить пустой, я хочу, чтобы ссылаться на как-то файл, который я создал вместо нулевой. Надеюсь, что это немного облегчит. –

ответ

1

вы можете использовать простые методы из файла

 File file = new File("folder/folder/folder/file.gif"); 
     //absolute path 
     file.getAbsolutePath(); 
     //path 
     file.getPath(); 

Используйте это на тестовом классе и поместить объект в myPlayer2 конструктора.

В вы ToString() метод, в переменной

спрайту

использование

sprite.getPath() или sprite.getAbsolutePath();

для отображения пути к вашему файлу в строковом формате.

Если вы хотите использовать поток для чтения байтов, попробуйте это

InputStream in = new FileInputStream(new File("folder/folder/folder/file.gif")); 
+0

Я поместил файл.getPath() в часть toString в классе. Когда я добавляю то же самое в тестер под myPlayer2, он просит меня изменить его на String в Eclipse. Это выглядит так: myPlayer2 = новый myPlayer («SteveO», «Male», «demon», 99, «live», sprite.getPath()); –

+0

Да, если вы поместите sprite.getPath() в myPlayer, на самом деле вы поместите String, а не File. Если вы хотите использовать «Файл в конструкторе», поместите файл и в метод toString используйте sprite.getPath(). Если вы хотите использовать String в конструкторе - измените свои аргументы constractor. –

Смежные вопросы