类与对象小结
Java编程是面向对象的面向对象的编程过程,即模拟现实生活的各种事和物。既然如此,生活中的对象和Java中的对象有什么联系呢?
现实生活中,对象要是生活中具体的某一个物体或者具体的某一个事物,例如:一个学生,其特征包括姓名,性别,学分,年龄等,其行为包括考试,睡觉,学习等;一个篮球,其特征包括颜色,材料,重量等,其用途有娱乐,比赛等。Java中的对象包括属性和方法,属性便相当于现实生活中对象的特征,方法相当于其行为或用途。下面通过一个有趣的程序了解Java中的类和对象。
//战士与怪兽的战斗
//定义一个战士类
public class Soldier {
/**战士的属性包括血量和姓名,方法为战斗方法
* @param args
*/
//定义属性
String name;//姓名
int blood;//血量
//定义设置和调用属性值的方法
public void setName(String name){
this.name = name;
}//设置名字的方法
public String getName(){
return name;
}//返回名字的方法
public void setBlood(int blood){
this.blood = blood;
}//设置血量的方法
public int getBlood(){
return blood;
}//返回血量的方法
/*
* 定义攻击怪兽的战斗方法
*/
public void fight(Monster mo){
mo.blood--;
System.out.println(this.getName()+" 攻击了 "+mo.getName()+" ");
System.out.println(mo.getName()+" 血量减一 ");
System.out.println("战士血量为 "+this.getBlood()+" 怪兽的血量为 "+mo.getBlood());
System.out.println("-----------------------------------------------------------");
}
}
//定义一个怪兽类
public class Monster {
/**怪兽的属性包括血量和姓名,方法为战斗方法
* @param args
*/
//定义属性
String name;//姓名
int blood;//血量
//定义设置和调用属性值的方法
public void setName(String name){
this.name = name;
}//设置名字的方法
public String getName(){
return name;
}//返回名字的方法
public void setBlood(int blood){
this.blood = blood;
}//设置血量的方法
public int getBlood(){
return blood;
}//返回血量的方法
/*
* 定义攻击战士的战斗方法
*/
public void fight(Soldier so){
so.blood--;
System.out.println(this.getName()+" 攻击了 "+so.getName()+" ");
System.out.println(so.getName()+" 血量减一 ");
System.out.println("战士血量为 "+so.getBlood()+" 怪兽的血量为 "+this.getBlood());
System.out.println("-----------------------------------------------------------");
}
}
//定义一个包含程序入口的Test类
public class Test {
/**定义程序入口
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//实例化一个战士对象
Soldier so = new Soldier();
so.setName("雷欧");//设置战士名字
so.setBlood(10);//设置战士血量
//实例化一个怪兽对象
Monster mo = new Monster();
mo.setName("哥斯拉");//设置怪兽名字
mo.setBlood(8);//设置怪兽血量
Test ts = new Test();
//开始攻击
ts.VS(mo,so);
}
//定义战斗平台
public void VS( Monster mo,Soldier so){
//攻击前判断双方血量是否均大于零
while((mo.blood>0)&&(so.blood>0)){
mo.fight(so);//怪兽攻击战士
if(so.blood<=0){
System.out.println(mo.getName()+" 胜利了 !");
break;
}//若战士血量为零,则怪兽胜利,跳出循环
so.fight(mo);
if(mo.blood<=0){
System.out.println(so.getName()+" 胜利了 !");
break;
}//若战士血量为零,则怪兽胜利,跳出循环
}
//if(n1.blood<=0)
//System.out.println(n2.getName()+"胜利!");
//else
//System.out.println(n1.getName()+"胜利!");
}
}
运算结果 :
哥斯拉 攻击了 雷欧
雷欧 血量减一
战士血量为 9 怪兽的血量为 8
-----------------------------------------------------------
雷欧 攻击了 哥斯拉
哥斯拉 血量减一
战士血量为 9 怪兽的血量为 7
-----------------------------------------------------------
哥斯拉 攻击了 雷欧
雷欧 血量减一
战士血量为 8 怪兽的血量为 7
-----------------------------------------------------------
雷欧 攻击了 哥斯拉
哥斯拉 血量减一
战士血量为 8 怪兽的血量为 6
-----------------------------------------------------------
哥斯拉 攻击了 雷欧
雷欧 血量减一
战士血量为 7 怪兽的血量为 6
-----------------------------------------------------------
雷欧 攻击了 哥斯拉
哥斯拉 血量减一
战士血量为 7 怪兽的血量为 5
-----------------------------------------------------------
哥斯拉 攻击了 雷欧
雷欧 血量减一
战士血量为 6 怪兽的血量为 5
-----------------------------------------------------------
雷欧 攻击了 哥斯拉
哥斯拉 血量减一
战士血量为 6 怪兽的血量为 4
-----------------------------------------------------------
哥斯拉 攻击了 雷欧
雷欧 血量减一
战士血量为 5 怪兽的血量为 4
-----------------------------------------------------------
雷欧 攻击了 哥斯拉
哥斯拉 血量减一
战士血量为 5 怪兽的血量为 3
-----------------------------------------------------------
哥斯拉 攻击了 雷欧
雷欧 血量减一
战士血量为 4 怪兽的血量为 3
-----------------------------------------------------------
雷欧 攻击了 哥斯拉
哥斯拉 血量减一
战士血量为 4 怪兽的血量为 2
-----------------------------------------------------------
哥斯拉 攻击了 雷欧
雷欧 血量减一
战士血量为 3 怪兽的血量为 2
-----------------------------------------------------------
雷欧 攻击了 哥斯拉
哥斯拉 血量减一
战士血量为 3 怪兽的血量为 1
-----------------------------------------------------------
哥斯拉 攻击了 雷欧
雷欧 血量减一
战士血量为 2 怪兽的血量为 1
-----------------------------------------------------------
雷欧 攻击了 哥斯拉
哥斯拉 血量减一
战士血量为 2 怪兽的血量为 0
-----------------------------------------------------------
雷欧 胜利了 !
程序结束。
程序中定义了两个战斗对象:战士和怪兽,通过对像的属性和方法,展示了双方的战斗情景。初学者可通过这个程序对Java中类与对象的概念进行初步的认识小结。