java程序出问题,arraylist里添加了5个对象,最后却出现了null!求指错

java程序出问题,arraylist里添加了5个对象,最后却出现了null!求指错,第1张

问题出在了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


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11364958.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-15
下一篇2023-05-15

发表评论

登录后才能评论

评论列表(0条)

    保存