疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

Java类和对象


 

       从日常生活中看对象

  其实对象这个名次对我们来说一点也不陌生,因为我们的日常生活中。随处可见的都是对象,小到地上的一粒沙,大到中国的万里长城,埃及的金字塔,所有的东西都是对象(万物皆对象)。

  类只是个抽象的称呼,而对象是个看得到,摸的到,听得到的实例。有些时候我们也不用类的名称来称呼一个对象,而是直接使用对象的名称,如我家有只狗,它的名字叫小白,这里的狗是类名称,而小白就是对象的名称。既然它要叫小白而不叫小黄,小黑,一定是它本身有不同于其他狗对象的地方,比如说毛发的颜色,而你可能是它的主人,因为我们很少为陌生的狗取名字。而毛发的颜色,主人是谁等等都是用来描述这只狗的东西,我们称之为属性。

  类的声明

  public class 类名{

  private 数据类型 属性;

  public 返回值数据类型 成员函数名();

  }

  对象的实例化

  类名 对象名 = new 类名();

  如Student s1=new Student();

  调用方法

  对象名.方法名(实参或参数值);

  如Student.study()

  Student.play(2);

  下面是一个英雄联盟英雄徳玛西亚之力单挑大龙男爵的代码:

  Java代码

  package netJava0706类和对象;

  public class player{

  /**

  * 定义属性

  */

  private String name;

  private double blood;

  private double attack;

  private double defense;

  /*

  * 定义方法

  */

  public void setName(String s){

  name=s;

  }

  public String getName(){

  return name;

  }

  public void setBlood(double d){

  blood=d;

  }

  public double getBlood(){

  return blood;

  }

  public void setAttack(double d){

  attack=d;

  }

  public double getAttack(){

  return attack;

  }

  public void setDefense(double d){

  defense=d;

  }

  public double getDefense(){

  return defense;

  }

  public void NormalAttack(Boss b){

  double HP=b.getBlood()-(210-b.getDefense());

  b.setBlood(HP);

  System.out.print("盖伦对男爵造成了210点物理伤害,男爵血量剩余"+HP+"点");

  }

  public void Q(Boss b,player p){

  double HP=b.getBlood()-130-p.getAttack()*1.4+b.getDefense();

  b.setBlood(HP);

  System.out.println("Boss受到了盖伦致命打击技能的伤害,血量减少"+(130+p.getAttack()*1.4-b.getDefense())+",被沉默一个回合,男爵血量剩余"+HP+"点");

  }

  public void W(player p){

  p.setBlood(p.getBlood()+300);

  System.out.println("盖伦获得一个持续性的防御护盾,增加盖伦300点血量");

  }

  public void E(Boss b,player p){

  double HP=b.getBlood()-p.getAttack()*1.1-120;

  b.setBlood(HP);

  System.out.println("盖伦快速的旋舞大剑,每回合对男爵造成"+(p.getAttack()*1.1+120)+"点加上盖伦攻击力的110%点物理伤害,持续1回合。" +

  "男爵血量剩余"+HP+"点");

  }

  public void R(Boss b){

  double HP=b.getBlood()-525+b.getDefense();

  b.setBlood(HP);

  System.out.println("盖伦召唤徳玛西亚之力,试图斩杀男爵,造成男爵"+(525-b.getDefense())+"点魔法伤害,男爵每损失3.5伤害会多增加1伤害。"

  +"男爵血量剩余"+HP+"点");

  }

  }

  Java代码

  package netJava0706类和对象;

  public class Boss {

  private String name;

  private double blood;

  private double attack;

  private double defense;

  public void setName(String s){

  name=s;

  }

  public String getName(){

  return name;

  }

  public void setBlood(double d){

  blood=d;

  }

  public double getBlood(){

  return blood;

  }

  public void setAttack(double d){

  attack=d;

  }

  public double getAttack(){

  return attack;

  }

  public void setDefense(double d){

  defense=d;

  }

  public double getDefense(){

  return defense;

  }

  public void NormalAttack(player p){

  double HP=p.getBlood()-(460-p.getDefense());

  p.setBlood(HP);

  System.out.println("男爵对盖伦造成了"+(460-p.getDefense())+"点物理伤害。盖伦血量剩余"+HP+"点");

  }

  }

  Java代码

  package netJava0706类和对象;

  import java.util.Random;

  public class war {

  public static void main(String[] args){

  player Garen=new player();

  Garen.setName("盖伦");

  Garen.setBlood(4500.0);

  Garen.setAttack(210.0);

  Garen.setDefense(300.0);

  Boss Baron=new Boss();

  Baron.setName("男爵");

  Baron.setBlood(9876.0);

  Baron.setAttack(460.0);

  Baron.setDefense(120.0);

  Random r=new Random();

  while (Garen.getBlood()>0&&Baron.getBlood()>0){

  int choice=r.nextInt(4);

  switch (choice){

  case 0:Garen.NormalAttack(Baron);break;

  case 1:Garen.Q(Baron,Garen);break;

  case 2:Garen.W(Garen);break;

  case 3:Garen.E(Baron,Garen);break;

  case 4:Garen.R(Baron);break;

  }

  Baron.NormalAttack(Garen);

  }

  if(Garen.getBlood()>0)

  System.out.print("盖伦斩杀男爵!!!");

  else

  System.out.print("男爵杀死盖伦!!!T.T");

  }

  }

  调试结果(部分):

  Java代码

  Boss受到了盖伦致命打击技能的伤害,血量减少304.0,被沉默一个回合,男爵血量剩余863.0点

  男爵对盖伦造成了160.0点物理伤害。盖伦血量剩余140.0点

  盖伦获得一个持续性的防御护盾,增加盖伦300点血量

  男爵对盖伦造成了160.0点物理伤害。盖伦血量剩余280.0点

  盖伦快速的旋舞大剑,每回合对男爵造成351.0点加上盖伦攻击力的110%点物理伤害,持续1回合。男爵血量剩余512.0点

  男爵对盖伦造成了160.0点物理伤害。盖伦血量剩余120.0点

  盖伦对男爵造成了210点物理伤害,男爵血量剩余422.0点男爵对盖伦造成了160.0点物理伤害。盖伦血量剩余-40.0点

  男爵杀死盖伦!!!T.T