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

相关推荐
吾日三省吾码3 小时前
JVM 性能调优
java
LNTON羚通4 小时前
摄像机视频分析软件下载LiteAIServer视频智能分析平台玩手机打电话检测算法技术的实现
算法·目标检测·音视频·监控·视频监控
弗拉唐4 小时前
springBoot,mp,ssm整合案例
java·spring boot·mybatis
oi775 小时前
使用itextpdf进行pdf模版填充中文文本时部分字不显示问题
java·服务器
少说多做3435 小时前
Android 不同情况下使用 runOnUiThread
android·java
知兀5 小时前
Java的方法、基本和引用数据类型
java·笔记·黑马程序员
哭泣的眼泪4085 小时前
解析粗糙度仪在工业制造及材料科学和建筑工程领域的重要性
python·算法·django·virtualenv·pygame
蓝黑20205 小时前
IntelliJ IDEA常用快捷键
java·ide·intellij-idea
Ysjt | 深5 小时前
C++多线程编程入门教程(优质版)
java·开发语言·jvm·c++