0
点赞
收藏
分享

微信扫一扫

类与对象学习笔记

yeamy 2022-01-12 阅读 60

今天学习了类与对象的基本概念,自己用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
-----回合结束-----
后羿获得游戏胜利!
英雄不能攻击自己

举报

相关推荐

0 条评论