今天学习了类与对象的基本概念,自己用java和所学知识写了一段小程序,现对学习内容总结。
一.类与对象的基本概念。
类,即某类事物的抽象,据我的理解,就是利用计算机代码对所需要抽象的某类事物进行的类别写定,也可以说是同类型的数据和对数据的操作的写定。如学生类,学生都有一些共同的属性特征以及行为动作,是一类事物。我们就可以利用代码对其进行写定,抽象出一个学生类。
对象,即某类别中的具体的某个实例。
类可以说是对对象的抽象,对象是一个类别的具体实例。其中对象占用实际的存储空间,类不占用存储空间。代码中不含实际的对象。
二.类的结构与对象的原理
类的结构:
1)类的属性,即对象的描述。为定义在类中对对象自身具有的特定数据类型的描述。具有名词性 由一个词/数据表达。格式为:属性类型 属性名。
2)类的方法,即对象的行为。为定义在类中的具特定功能的一段独立的小程序,方法也称为函数,。格式: 返回值类型 方法名(参数列表){ 方法体 }, 方法运行后的返回结果的数据类型,如果没有返回值使用void。
3)主程序入口(在Java中主程序定义在类的里面,而C++在类的外面)
对象原理:对象由类创建而成,占用实际存储空间,可以使用类中定义的各种方法与操作。对象名是程序再操作对象时的代词,对象名可以调用属性赋值,对象名可以调用方法函数执行。
三.创建对象过程与 对象名调用属性与方法
创建对象的关键字:new。
格式: 类名 对象名 = new 类名();
对象名属性的调用: 对象名.属性
对象名方法的调用:对象名.方法(方法参数列表)
四.PK小游戏代码
package com.cs0112;
import java.util.Random;
public class Hero
{
String name;
int id;
int hp;
int ad;
/* 攻击,其中一个对象对另一个对象的攻击有10%的概率被躲避 */
public void ack(Hero h)
{
if(h.name != name)
{
h.hp -= ad;
System.out.println(name+"攻击了"+h.name);
Random random = new Random();
int number = random.nextInt(10);
if(number == 0)
{
h.hp += ad;
System.out.println(h.name+"闪避掉了"+name+"的攻击");
System.out.println(h.name+"的生命值还剩:"+h.hp);
}
else
{
System.out.println("使" + h.name + "失去了" + ad + "点HP");
System.out.println(h.name + "的生命值还剩:" + h.hp);
}
}
else
{
System.out.println("英雄不能攻击自己");
}
}
/*恢复,英雄每回合结束之后会自动恢复50生命值*/
public void heal()
{
if(hp>0)
{
hp += 50;
System.out.println(name+"的生命值在恢复后还剩:"+hp);
}
}
//public void dodge();
public static void main(String[] args)
{
Hero lvbu = new Hero();
lvbu.name = "吕布";
lvbu.hp = 2800;
lvbu.ad = 180;
Hero houyi = new Hero();
houyi.name = "后羿";
houyi.hp = 2000;
houyi.ad = 280;
int count = 0;
while(lvbu.hp > 0 && houyi.hp > 0)
{
count++;
System.out.println("-----第"+count+"回合!-----");
lvbu.ack(houyi);
houyi.ack(lvbu);
lvbu.heal();
houyi.heal();
}
if(lvbu.hp>0 && houyi.hp <= 0)
{
System.out.println("-----回合结束-----");
System.out.println("吕布获得游戏胜利!");
}
else
{
System.out.println("-----回合结束-----");
System.out.println("后羿获得游戏胜利!");
}
lvbu.ack(lvbu);
}
}
主要功能的运行结果:
-----第9回合!-----
吕布攻击了后羿
使后羿失去了180点HP
后羿的生命值还剩:780
后羿攻击了吕布
吕布闪避掉了后羿的攻击
吕布的生命值还剩:960
吕布的生命值在恢复后还剩:1010
后羿的生命值在恢复后还剩:830
-----第15回合!-----
吕布攻击了后羿
使后羿失去了180点HP
后羿的生命值还剩:360
后羿攻击了吕布
使吕布失去了280点HP
吕布的生命值还剩:-140
后羿的生命值在恢复后还剩:410
-----回合结束-----
后羿获得游戏胜利!
英雄不能攻击自己