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