欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java类与对象小结

程序员文章站 2022-07-12 12:16:34
...

类与对象小结

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

相关标签: 类与对象