栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

初学Java(从入门到入土)(四)(面向对象之游戏角色的开发)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

初学Java(从入门到入土)(四)(面向对象之游戏角色的开发)

前言:之前类比游戏介绍了一些基础,接下来我们开始接触Java核心之一——面向对象编程,仍采用类比游戏的方式(这次从开发者、设计师的角度)


4.1面向对象编程(设计开发角色)

面向对象与面向过程

        二者皆为重要的编程思想。以游戏角色为例,面向对象侧重于角色,强调的是一系列行为归属于我们的角色;而面向过程侧重于角色的动作、行为,如角色打怪,跑图,休闲娱乐等等,强调的是这个过程。

术语解释:
面向对象_百度百科面向对象(Object Oriented)是软件开发方法,一种编程范式。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。面向对象是相对于面向过程来讲的,面向对象方法,把相关的数据和方法组织为一个整体来看待,从更高的层次来进行系统建模,更贴近事物的自然运行模式。https://baike.baidu.com/item/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1

面向过程_百度百科“面向过程”(Procedure Oriented)是一种以过程为中心的编程思想。这些都是以什么正在发生为主要目标进行编程,不同于面向对象的是谁在受影响。与面向对象明显的不同就是封装、继承、类。简写为POP。https://baike.baidu.com/item/%E9%9D%A2%E5%90%91%E8%BF%87%E7%A8%8B

面向对象的思想 

                类 → 角色设计图(唯一)        对象 → 角色(很多)

                角色设计完成 → 角色创建

        我们将角色设计图做好之后,就可以创建出多种角色,但是,我们可以看出,角色设计是关键的一步,所以面向对象程序设计的重点是类的设计 

        怎样定义类?——定义类中的成员(成员变量和成员方法)(是不是不太理解?-?)

这样试试:怎样创建游戏角色?——创建角色的模型(角色的属性和角色的行为)

(如果还是理解不好如何定义类,之后还会接触,不着急~)  

用面向对象的思想分析问题

        例:战士要跑去副本打小怪

                类:战士、怪         

                战士的方法动作:跑(去副本){ }     打(小怪){ }

                小怪的方法动作:被打(){ }     反击(){ }

                方法:战士{ 跑(去副本){ } }  小怪{ 被打(){ }     反击(){ } }

4.2类

我们最开始写的HelloWorld其实就是一个Test类 ,类名就是我们起的名字。

public class Test {

	public static void main(String[] args) {
		System.out.println("Hello World!");
	}

}

定义类(类 = 属性 + 方法)
class Character {
    String name;    //角色的昵称
    String gender;    //角色的性别
    String career;    //角色的职业
    int atk;    //攻击力
    int defence;    //防御值
    int healthPoint;    //血量
    int magicPoint;    //魔法值
    //以上都是角色的属性(成员变量)类成员变量可以不用初始化,自身有默认值
    //String类的默认值为null,int类默认值为0
    

    public void move() {    //空参
        System.out.println("角色移动");
    }
    public void attack(String monster) {    //带参
        System.out.println("角色打的是:"+monster);
    }
    //以上都是方法(角色的行为)(成员方法)(函数)
}

类以及类的成员(角色及角色属性和行为) 

        Java可以描述世间万物,万物皆对象(别问,问就是你还没有/doge),如果把Java代码看作一个世界,那么世间万物可以抽象成一个个的class类。

属性 Field(成员变量&角色的属性)

        对应类中的成员变量(比较抽象,用游戏来说,就是角色的属性,攻击、防御、抗性等) 

        成员变量又分为实例变量(无static修饰)和类变量(静态变量)(以static修饰)

        属性的格式:

                修饰符(不写默认为default) 类型 属性名 = 初值(可以不用初始化);        

                修饰符—public:该属性可以被本类以外的方法访问

                修饰符—private:该属性只能由本类的方法访问

(怎么理解?public:角色资料中的某一项或几项公开,private:角色资料中的某一项或几项私密)

例:

public class Character {    
    public String name;    //名字公开,可以被本角色以外的其他角色访问
    private String gender;    //性别私密,只能由本角色自己访问
    public int id = 123456;    //id公开,可以被本角色以外的其他角色访问

}
成员变量之实例变量和类变量(静态变量)  

        实例变量,就是在我们将类实例化成对象之后才可以使用(我们在上边类中声明的变量就是实例变量,无static修饰),需要先创建对象,再用  对象.属性  的方式调用

        类变量,也称静态变量,不需要实例化成对象就可以直接使用,通过  类名.属性  的方式直接调用

例:

//这是在定义一个角色类(创建角色)
//
class Character {
    public static int hp = 100;    //类变量 hp = 100
    public int mp = 100;    //实例变量 mp = 100

}
//这是在主方法中调用成员变量
//
public class Test{
    
    public static void main(String[] args){
        int a1 = Character.hp;    //因为 hp是类变量,所以可以直接用我们定义的角色类直接调用
                                 //int a2 = Character.mp;就是错的,因为 mp是实例变量,需要我们先创建对象
        Character c1 = new Character();    //为 c1开辟内存,即创建对象(一个具体的角色)
        int a2 = c1.mp;    //这是正确调用实例变量 mp的方式,即先创建对象,再用对象.属性的方式调用
    }

}

方法 Method(成员方法&函数&角色的行为)

        对应类中的成员方法(角色的行为、动作,如跑图、打怪、刷经验、挂机等)

        方法的格式:

                修饰符 返回值类型 方法名( 参数列表 ){ 方法体语句; }            

                return语句传递返回值,无返回值时返回值类型为void(空的)

例: 

public class Character{
    String name;
    
    public String getName() {    //声明方法 getName,返回值类型为 String(字符串)
        return name;    //使用 return语句返回 name的值
    }
    public void setName() {    //声明方法 setName,无返回值类型
        name = "ZhangSan";    //将字符串 ZhangSan赋给 name
    }
}


未完待续··· =_= 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/770867.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号