
问题出在了this.name,
给每个类都加一个方法:
public String getName(){
return this.name
}
然后把需要取得name的地方,都换成this.getName()
import java.util.*class Monster{
String name
public Monster(){}
public Monster(String name){
this.name=name
}
public String getName(){
return this.name
}
public int attack(){
int dama = (int)((Math.random() * 4+1))
System.out.println(this.getName() + ", of "+this.getClass()+", attacks generically:"+dama+"points damage caused.")
return dama
}//generic monster attack() method should return a random integer value between 1 and 5
public void move(int direction) {
switch(direction) {
case 1:
System.out.println(this.getName() + " is moving 1 step NORTH.")
break
case 2:
System.out.println(this.getName() + " is moving 1 step EAST.")
break
case 3:
System.out.println(this.getName() + " is moving 1 step SOUTH.")
break
default:
System.out.println(this.getName() + " is moving 1 step WEST.")
break
}
}
}
class Dragon extends Monster{
String name
public Dragon(String name){
this.name=name}
public String getName(){
return this.name
}
public int attack(){
int dama = 0
double a = Math.random()
if(a>0.3 &&a<1){
super.attack()
}
else{
dama = (int)((Math.random() * 49+1))
System.out.println(this.getName() + ", of "+this.getClass()+", attacks breathing fire:"+dama+"points damage caused.")
}
return dama
}//attacks by breathing fire 30% of the time and generically the rest of the time. When it attacks by breathing fire, it causes between 1 and 50 points of damage
}
class Troll extends Monster{
String name
public Troll(String n){
if(n.equals("Saul") || n.equals("Salomon")){
System.out.println("Error")
this.name = "Detritus"}
else{
this.name = n}//cannot be named Saul or Salomon. If the user of your program attempts to misname a troll, your program should print an error message and name the troll Detritus
}
public String getName(){
return this.name
}
}
public class MonsterMash {
public static void main(String[] args) {
ArrayList<Monster>monsters = new ArrayList<Monster>()
monsters.add(new Monster("Tom"))
monsters.add(new Monster("George"))
monsters.add(new Dragon("Smaug"))
monsters.add(new Dragon("Jabosh"))
monsters.add(new Troll("Salomon"))
monsters.add(new Troll("Bender"))
int damageDone = 0
while (damageDone <100) {
for (Monster m : monsters) {
m.move((int)(Math.random()*4) + 1)
damageDone += m.attack()
}
}
}
}
你这个问题好有趣呀,因为它可以装对象,装任何的东西,因为对象是可以为null,字符串也是可以为null,所以你想想,arraylist也是可以为null,但是不能为"",因为它不是一个字符串..这个问题就像在问,为什么人一定要吃饭一样的- -!下面就是向ArrayList集合类里面添加数据的例子,,list还可以点出remove(),clear(),get() 等方法。
你上百度问问题时尽量问简短一些比较好点,因为一般不会有人去给你一点一点去找,,
========-=======================================
package com.exam082
import java.util.ArrayList
import java.util.List
public class ArrayList02 {
public static void main(String[] args) {
ArrayList02 ay2=new ArrayList02()//创建这个类实例
ay2.testList()
}
private void testList() {
List<Integer>list=new ArrayList<Integer>()//拿到ArrayList集合类对象
list.add(11)//隐含了放的时候是11然后自动装箱把11变为Integer的对象类型的11了。
list.add(23)
for (int j = 0j <list.size()j++) {
//这样是可以的【list.get(j)是Integer对象类型的,这里自动拆箱为int类型的了】
int i = list.get(j)
System.out.println(i+100)//所以可以和100加了。
}
}
}
=============-========打印出下面的东西======================
111
123
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)