java类与对象

概念

对象

任何一个 实际的物体 都可以称之为一个对象。
这意味着每一个对象都有具体的属性,相当于每一个单独的人

将一群对象根据他们的某一特性,整合成一个抽象的概念集合,称之为类
类相当于一群具有相同特征的对象,比如“男人”、“程序员”


实例:王者荣耀英雄

特点:

对象
  1. 每个人操纵的每个英雄都是对象
  2. 每种英雄有相同的特点
  1. 每个英雄都是不同的类
  2. 每个英雄(类)都有其不同的特征

代码

public class houyi {
	public String id;
	public String name;
	public int hp;
	public int ad;
	
	//攻击方法
	public void ackA(libai lb) {
		
		lb.hp -= ad; 
		System.out.println("由id:"+id+"操控的"+name+"攻击了 id:"+lb.id+"的"
				+lb.name+" :造成了"+ad+"点伤害, 李白还剩下"+lb.hp+"点血量值");
	} 
	public void ackboss(boss bs) {
		
		bs.hp -= ad; 
		System.out.println("由id:"+id+"操控的"+name+"攻击了boss:造成了"
		+ad+"点伤害, boss还剩下"+bs.hp+"点血量值");
	}
}

继承

我们可以发现,许多英雄具有相同的特征,比如共同的:

  1. 名字
  2. 血量
  3. 攻击力

所以我们可以建立一个来储存这些公共的特征,并把这样的类成为父类

java实现

父类
public class hero {
	//公共的信息
	String name;
	int hp;
	int ad;
	//简单的攻击策略
	public void ack(hero ho) {
		ho.hp -=ad;
	}
}

子类A:

//用关键词extends继承父类

public class A extends hero{
	//自己独特的特殊攻击部分
	int sp_ad=20;
	//继承父类的攻击函数
	public void ack(hero ho) {
		ho.hp-=ad+sp_ad;
		
		System.out.println("A对B造成"+(ad+sp_ad)+"点伤害,B还剩下"+ho.hp+"点血量值.");
		sp_ad+=20;
	}
}

子类B

public class B extends hero{
	//特殊的攻击部分
	int sp_ad=1;
	
	public void ack(hero ho) {
		//与A不同的攻击模式
		ho.hp-=ad*sp_ad;
		sp_ad++;
		System.out.println("B对A造成"+(ad*sp_ad)+"点伤害,A还剩下"+ho.hp+"点血量值.");
	}
}

主函数

public class manage {
	public static void main(String []args) {
		//初始化各个英雄的值
		A ahero=new A();
			ahero.name="HHH";
			ahero.hp=150;
			ahero.ad=50;
			
		B bhero=new B();
			bhero.name="LLL";
			bhero.hp=200;
			bhero.ad=30;
		//开始循环攻击
		while(ahero.hp>0&&bhero.hp>0)
		{
			ahero.ack(bhero);
			bhero.ack(ahero);
		}
	}
}

验证截图:
通过造成的伤害情况来判断是否有效

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值