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()`:判断是否是最后一个场景。

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

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`是一种良好的封装实践,可以隐藏实现细节,提供更好的封装性和控制权限,从而保护数据的安全性和代码的可维护性。

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

你可能感兴趣的:(学做小游戏,java,算法,数据结构)