类的概念大概可以理解为一个类别
而对象则是这个类别里面的具体一个实例。
举例:我们定义一个类为“英雄”,包括血量、攻击力等数据,
定义完成后,我们就可以不断地调用这个类来创建新的英雄对象。
//“盖伦”类的定义
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
盖伦获胜