我根据电影The Ghost and The Darkness制作了一个项目,我通过GUI创建了一个人类类的对象和两个狮子类对象。
public class Lion{
private String Name;
public Lion(String Name){
this.Name=Name;
}
}
这是人类,
public class Human{
private String name;
public Human(String name){
name="Hunter";
}
}
现在,我想创建一个可以杀死/删除Lion对象的搜索对象。
答案 0 :(得分:0)
我认为你想创造类似于游戏的东西,在游戏中角色可以被杀死(或从游戏中删除)。
至少有两种方法可以实现:
//You can plan the hierarchy for your classes first..
//This is optional, but to make it interesting, we create a super class
abstract class LivingThings
{
private Boolean isAlive;
private String name;
public LivingThings(String name){
this.name = name;
isAlive = true; //When an object is created, set it to alive
}
public void setAlive(Boolean flag){
this.isAlive = flag;
}
}
<强> 1。将其标记为已死
现在,Human和Lion可以成为LivingThings的子类,所有子类都将拥有一个称为isAlive
的属性:
class Lion extends LivingThings{
//Your other properties for Lion
}
class Human extends LivingThings{
//Your other properties for Human
public void kill(LivingThings target){
target.setAlive(false); //Kill an object (but object still exist in game)
}
}
如果您正在制作游戏,通常不需要立即从游戏中删除该对象。但相反,我们标记为“死”。
<强> 2。尊重对象(不推荐)
如果你真的想删除它。你可以这样做:
public void kill(LivingThings target){
target = null; //Remove object (Wait for Garbage Collector to collect it)
}
但是,将其设置为null
可能会导致不良后果,因为程序的其他部分可能仍在引用该对象,因此会为您提供NullPointerException
。