Java类与对象小结

类与对象小结

      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中类与对象的概念进行初步的认识小结。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值