类与对象与继承的学习记录

类的概念大概可以理解为一个类别
而对象则是这个类别里面的具体一个实例。

举例:我们定义一个类为“英雄”,包括血量、攻击力等数据,

定义完成后,我们就可以不断地调用这个类来创建新的英雄对象。

//“盖伦”类的定义
public class GaiLun {
String name;
int hp;
int ad;
String id;}

//新建一个“盖伦”对象(此段代码需新建一个class写入)
 public class YXLM {
 public static void main(String[]args){
 gl.name="盖伦";
 gl.id="长白山野人";
 gl.hp=2330;
 gl.ad=235;}

父类与子类

现在我们定义了一个“盖伦”的类,那么如果我们希望出现更多英雄呢?

最笨的方式就是每个英雄都定义一次类,都定义一遍变量和属性,

另一种做法就是使用 -------- “继承”:

定义一个“英雄”的父类,后面的所有英雄都直接继承父类里面定义过的属性。

//英雄的定义
public class HERO {
String name;
int hp;
int ad;
String id;}

public class HanXin extends HERO{  }//韩信对类的继承“extends”
public class GaiLun extends HERO{  }//盖伦对类的继承“extends”
每个子类都还是需要新建一个自己的class

现在根据这个类与对象的概念完成一份小作业:定义一个“英雄”类,然后创建几个英雄对象并使其对战。

class1:HERO父类定义

public class HERO {
String name;
int hp;
int ad;
String id;

public void ackA(HERO hero){
//攻击代码
	hero.hp-=ad;
	System.out.println("由"+id+"操控的"+name+"攻击了"+hero.name+",使其生命值受损"+ad+",还剩下"+hero.hp);
}}

class2:HanXin子类定义

public class HanXin extends HERO{   }

class3:GaiLun子类定义

public class GaiLun extends HERO{   }

class4:盖伦与韩信的对象新建及对战

public class Duizhan {
public static void main(String[]args){
 GaiLun gl=new GaiLun();
 gl.name="盖伦";
 gl.id="长白山野人";
 gl.hp=2330;
 gl.ad=235;
 
 HanXin hx=new HanXin();
 hx.name="韩信";
 hx.id="夏威夷斑马";
 hx.hp=1880;
 hx.ad=260;
 
 while(hx.hp>0&&gl.hp>0){
		
	 gl.ackA(hx);  if(hx.hp<=0) 
	 { break;}
	 
	 hx.ackA(gl);  if(gl.hp<=0) 
	 { break;}
	 
 }
 if(gl.hp>0)
	 {System.out.println("盖伦获胜");
if(hx.hp>0)
	 {System.out.println("韩信获胜");

	 程序运行结果:
	 由长白山野人操控的盖伦攻击了韩信,使其生命值受损235,还剩下1645
由夏威夷斑马操控的韩信攻击了盖伦,使其生命值受损260,还剩下2070
由长白山野人操控的盖伦攻击了韩信,使其生命值受损235,还剩下1410
由夏威夷斑马操控的韩信攻击了盖伦,使其生命值受损260,还剩下1810
由长白山野人操控的盖伦攻击了韩信,使其生命值受损235,还剩下1175
由夏威夷斑马操控的韩信攻击了盖伦,使其生命值受损260,还剩下1550
由长白山野人操控的盖伦攻击了韩信,使其生命值受损235,还剩下940
由夏威夷斑马操控的韩信攻击了盖伦,使其生命值受损260,还剩下1290
由长白山野人操控的盖伦攻击了韩信,使其生命值受损235,还剩下705
由夏威夷斑马操控的韩信攻击了盖伦,使其生命值受损260,还剩下1030
由长白山野人操控的盖伦攻击了韩信,使其生命值受损235,还剩下470
由夏威夷斑马操控的韩信攻击了盖伦,使其生命值受损260,还剩下770
由长白山野人操控的盖伦攻击了韩信,使其生命值受损235,还剩下235
由夏威夷斑马操控的韩信攻击了盖伦,使其生命值受损260,还剩下510
由长白山野人操控的盖伦攻击了韩信,使其生命值受损235,还剩下0
盖伦获胜
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值