类和对象

从日常生活中看对象

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

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

 

类的声明

public class 类名{

      private  数据类型 属性;

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

}

对象的实例化

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

如Student s1=new Student();

 

调用方法

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

如Student.study()

   Student.play(2);

 

 

 

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

 

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+"点");
	}
}

 

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+"点");
	}
}

 

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");
		
	}
}

 

 

调试结果(部分):

 

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

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值