Java超级玛丽小游戏制作过程讲解 第六天 绘制背景

java 复制代码
package com.sxt;

import java.awt.image.BufferedImage;

public class BackGround {
    //当前场景要显示的图像
private BufferedImage bgImage=null;

    //记录当前是第几个场景
private int sort;

    //判断是否是最后一个场景
private boolean flag;

public BackGround(){

}


    public BackGround(int sort, boolean flag){
      this.sort=sort;
      this.flag=flag;


      if(flag){
          bgImage=StaticValue.bg2;
      }else{
          bgImage=StaticValue.bg;
      }

}
    public BufferedImage getBgImage() {
        return bgImage;
    }

    public int getSort() {
        return sort;
    }

    public boolean isFlag() {
        return flag;
    }



}

我们新建一个BackGround类。

这段代码是一个名为`BackGround`的Java类,用于表示背景图像和场景。它具有以下属性和方法:

  1. `bgImage`:表示当前场景要显示的图像的`BufferedImage`对象。

  2. `sort`:记录当前是第几个场景的整数值。

  3. `flag`:判断是否是最后一个场景的布尔值。

构造方法:

  • 无参数构造方法:创建一个空的背景对象。

  • 带参数构造方法:接受一个整数值和一个布尔值作为参数,分别表示场景的排序和是否为最后一个场景。根据参数的不同,设置`bgImage`为相应的背景图像。

提供了以下公共方法(getter):

  • `getBgImage()`:获取当前场景要显示的图像。

  • `getSort()`:获取当前场景的排序。

  • `isFlag()`:判断是否是最后一个场景。

这个类的作用是管理场景的背景图像,根据场景的排序和是否为最后一个场景,选择相应的背景图像进行显示。

java 复制代码
private BufferedImage bgImage=null;

    //记录当前是第几个场景
private int sort;

    //判断是否是最后一个场景
private boolean flag;

public BackGround(){

}

这段代码是`BackGround`类的成员变量和无参构造方法。

  1. `private BufferedImage bgImage=null;`:这是一个私有成员变量,用于存储当前场景要显示的图像。它的类型是`BufferedImage`,初始化为`null`。

  2. `private int sort;`:这是一个私有成员变量,用于记录当前场景的排序。它的类型是整数。

  3. `private boolean flag;`:这是一个私有成员变量,用于判断是否是最后一个场景。它的类型是布尔值。

  4. `public BackGround(){}`:这是一个无参构造方法。在这个构造方法中,没有任何具体的逻辑实现。它被用作创建`BackGround`对象时的默认构造方法。

这些成员变量和构造方法提供了`BackGround`类的基本组件,其中`bgImage`用于存储图像,`sort`用于记录场景顺序,`flag`用于判断是否是最后一个场景,而无参构造方法用于创建实例对象。

知识小科普:将成员变量设置为`private`是一种封装的实践,它有以下几个原因:

1. 数据隐藏:将成员变量设置为`private`可以隐藏内部实现细节,只暴露必要的方法给外部访问。这样可以提高代码的安全性和可维护性,防止外部直接修改成员变量的值,而通过定义的公共方法进行控制和限制访问。

2. 封装性:将成员变量设置为`private`可以提供更好的封装性。对外部来说,只需通过公共方法来访问和操作成员变量,而不需要了解其具体实现细节。这样在后续的开发和维护过程中,可以更灵活地修改内部实现,而不会对外部代码造成影响。

3. 控制权限:通过将成员变量设置为`private`,可以精确地控制对成员变量的访问权限。只有本类内部的方法才能直接访问和修改这些成员变量,其他外部类或对象无法直接操作。这样可以提高代码的安全性,并减少错误和意外的发生。

综上所述,将成员变量设置为`private`是一种良好的封装实践,可以隐藏实现细节,提供更好的封装性和控制权限,从而保护数据的安全性和代码的可维护性。

java 复制代码
public BufferedImage getBgImage() {
    return bgImage;
}

public int getSort() {
    return sort;
}

public boolean isFlag() {
    return flag;
}

Getter方法(也称为访问器方法)是一种常见的面向对象编程的概念,用于获取对象的私有属性值。在这段代码中,getter方法被用来获取`BackGround`类中的私有属性值。

使用getter方法的好处包括:

  1. 封装性:getter方法可以提供对私有属性的访问,并同时隐藏了内部实现的细节。通过使用getter方法,将属性的访问限制在类内部,可以避免对属性的直接访问和修改,增强了类的封装性和数据安全性。

  2. 可控性:通过getter方法,我们可以在获取属性值时进行额外的逻辑处理。例如,在获取`bgImage`属性值时,可能进行一些图像处理或者返回属性的副本以保持数据的不可变性。这样可以确保属性值的正确性和一致性。

  3. 扩展性:如果以后需要对属性的获取逻辑进行修改或添加其他功能,只需要修改getter方法的实现,而不需要修改使用该属性的其他代码。这样可以减少代码的依赖性,提高代码的灵活性和可维护性。

在给定的代码中,我们可以通过调用`getBgImage()`、`getSort()`和`isFlag()`方法,获取`bgImage`、`sort`和`flag`的值,而无需直接访问这些私有属性。这样可以保持`BackGround`类的封装和内部实现的私有性,同时提供了对属性值的安全访问方式。

声明:小游戏源码来自b站视频(up:编程学习会员Q),本文仅根据源码做知识性补充与注解。如存在不当使用的情况,请随时联系删除。

http://【【Java项目】不到两小时用Java做出超级玛丽小游戏_手把手教你开发游戏_超详细保姆级教程_Java编程_Java游戏开发-Java基础-Java练手项目】https://www.bilibili.com/video/BV1DZ4y1Y73M?p=8&vd_source=70e680aaeedc45cb797fd52fdd25367c

相关推荐
A懿轩A2 分钟前
C/C++ 数据结构与算法【树和二叉树】 树和二叉树,二叉树先中后序遍历详细解析【日常学习,考研必备】带图+详细代码
c语言·数据结构·c++·学习·二叉树·
小小药9 分钟前
009-spring-bean的实例化流程
java·数据库·spring
-$_$-10 分钟前
【LeetCode 面试经典150题】详细题解之滑动窗口篇
算法·leetcode·面试
Channing Lewis13 分钟前
算法工程化工程师
算法
罗政37 分钟前
PDF书籍《手写调用链监控APM系统-Java版》第12章 结束
java·开发语言·pdf
GraduationDesign41 分钟前
基于SpringBoot的蜗牛兼职网的设计与实现
java·spring boot·后端
今天不学习明天变拉吉1 小时前
大批量数据导入接口的优化
java·excel
小手cool1 小时前
取多个集合的交集
java
全栈老实人_1 小时前
农家乐系统|Java|SSM|VUE| 前后端分离
java·开发语言·tomcat·maven
customer081 小时前
【开源免费】基于SpringBoot+Vue.JS安康旅游网站(JAVA毕业设计)
java·vue.js·spring boot·后端·kafka·开源·旅游