我有一个创建Swords
的Java程序。现在,我想将这些Swords
的damagevalue和名称存储在文本文件中,以后能够读取这些值。最好的方法是什么?
我有两节课:
Sword.java
和NewSword.java
,其中NewSword.java
是创建新剑(o.O)的功能。这是代码:
Sword.java:
package game;
public class Sword {
public static int numberOfSwords=0;
public static void main(String [] args){
functions.NewSword.newSword("Wooden Sword", 2);
System.out.println(numberOfSwords);
}
}
和
NewSword.java:
package functions;
public class NewSword {
public static void newSword(String nameSword, int damageSword){
game.Sword.numberOfSwords++;
}
}
所以:
我希望能够在函数newSword(String nameSword, int damageSword)
中将nameSword
和damageSword
放在一个文本文件中,并且能够阅读...以便我以后可以喜欢:“他有一把木剑,有什么损坏?”......我想把它放在一个文本文件中,因为我想知道它是如何工作的,并用它练习。此外,我认为如果我想为剑添加功能会更容易,并且可以将它们放在文本文件中...希望你能帮助我!
编辑:我把这个函数放在另一个包中,这就是为什么它是functions.NewSword.newSword("Wooden Sword", 2);
,只是为了它的原因:D但也有点组织......
答案 0 :(得分:2)
通读:http://www.tutorialspoint.com/java/java_files_io.htm 它解释了从创建文件到阅读文件的所有内容,并确保帮助您。
然而,kviiris对于学习面向对象编程的方法表示赞赏。 以下是剑的基本方法:
你为剑写了一个类,其中包含给定剑所需的所有信息。
public class Sword {
private String name;
private int damage;
// this is the constructor to create new swords
public Sword(String name, int damage){
this.name = name;
this.damage = damage;
}
}
现在您可以从主类访问它并使用它来创建任意数量的剑,只需使用
Sword s = new Sword("wooden sword", 2);
Sword s2 = new Sword("iron sword", 20);
注意:你使用了同一个类(Sword),但这仍然是2个完全独立的剑。 这是面向对象编程的主要用途。
答案 1 :(得分:0)
这将编译。
package game;
import functions.Sword;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Game {
List<Sword> swords = new ArrayList<Sword>();
public static void main(String[] args) {
Game game = new Game();
game.play();
}
public void play() {
swords.add(new Sword("Wooden sword", 2));
swords.add(new Sword("Silver sword", 4));
System.out.println(swords.size());
System.out.println(Arrays.toString(swords));
}
}
package functions;
public class Sword {
private final String name;
private final int damage;
public Sword(String name, int damage) {
this.name = name;
this.damage = damage;
}
public String getName() {
return name;
}
public int getDamage() {
return damage;
}
}