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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/35117.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/35117.shtml
英文地址,請注明出處:http://en.pswp.cn/news/35117.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【CGroupAndroid實踐篇】四、Native Service進程啟動及控制組遷移

寫在前面 承接上一篇,在cgroup子系統初始化完成后,init會繼續執行開機流程,且通過代哦用ExecuteCommand()函數。 /system/core/init/init.cppint SecondStageMain(int argc, char** argv) {......ActionManager& am = ActionManager::GetInstance();am.ExecuteOneCo…

ASIC芯片設計全流程項目實戰課重磅上線 ,支持 65nm制程流片 !

全流程項目實戰課學什么? 此次推出【 ASIC芯片設計全流程項目實戰課】,基于IPA圖像處理加速器,以企業級真實ASIC項目為案例,學員可參與全流程項目實踐,以及65nm真實流片! 眾所周知,放眼整個IC碩…

【Linux】【驅動】驅動框架以及掛載驅動

【Linux】【驅動】驅動框架以及掛載驅動 緒論1.配置開發環境2. 編寫驅動文件3. 編譯Makefile文件4.編譯5. 掛載驅動注意:有些開發板打開了或者禁止了printk信息,導致你看到的實驗現象可能不一樣,此時已經將文件移動到了開發板中,開發板查看文…

Flink CEP(Complex Event Processing)庫

復雜事件處理(Complex Event Processing,CEP)是一種用于在流式數據中識別和處理復雜事件模式的技術。Apache Flink 作為一個流式處理框架,也可以用于實現復雜事件處理。下面是 Flink 中實現復雜事件處理的一般原理: 事…

WebRTC音視頻通話-新增或修改SDP中的碼率Bitrate限制

WebRTC音視頻通話-新增或修改SDP中的碼率Bitrate限制參數 之前搭建ossrs服務,可以查看:https://blog.csdn.net/gloryFlow/article/details/132257196 之前實現iOS端調用ossrs音視頻通話,可以查看:https://blog.csdn.net/gloryFlo…

連接不上手機,adb devices為空:

首先說明一下,我是已經安裝了android studio,也配置了環境變量,但是還是連接不上手機 解決方案: 1.打開開發者模式 https://product.pconline.com.cn/itbk/sjtx/sjwt/1424/14246015.html 2.開啟usb調試 https://baiyunju.cc/10770 最后成功…

Nginx:Web基礎與HTTP協議

目錄 1、dns域名 1.1 dns解析方式: 1.2 域名解析服務器: 2、html 2.1 網頁、網站和主頁、域名 2.2 URL和URI 3、Web(全球廣域網,也稱萬維網) 3.1 靜態頁面 3.1.1 靜態頁面特點 3.2 動態頁面 3.2.1 動態頁面…

什么是CSS的box-sizing屬性?它有哪些取值,各有什么不同?

聚沙成塔每天進步一點點 ? 專欄簡介? CSS的box-sizing屬性? 取值? 不同之處? 寫在最后 ? 專欄簡介 前端入門之旅:探索Web開發的奇妙世界 記得點擊上方或者右側鏈接訂閱本專欄哦 幾何帶你啟航前端之旅 歡迎來到前端入門之旅!這個專欄是為那些對Web…

關于Vue構建低代碼平臺的思考

一、前言 在項目實戰開發中,尤其是大平臺系統的搭建,針對不同業務場景,需要為用戶多次編寫用于錄入、修改、展示操作的相應表單頁面。一旦表單需求過多,對于開發人員來說,算是一種重復開發,甚至是繁雜的工作…

【C++起飛之路】初級—— auto、范圍for循環、宏函數和內聯函數

auto、范圍for、內聯函數、宏函數和nullptr 一、auto — 類型推導的魔法(C 11)1、auto 是什么?2、工作原理3、優勢4、限制和注意事項 二、范圍for (C11)1、基本語法2、優勢3、工作原理4、注意事項5、C11: 范圍 for 循環的擴展: 三…

軟件測試基礎篇——LAMP環境搭建

LAMP 1、Linux系統的其他命令 find命令:在目錄下查找文件 ? 格式一:find 路徑 參數 文件名 ? 路徑:如果沒有指定路徑,默認是在當前目錄下 ? 參數:-name 根據文件名來查找,區分大小寫; -…

useState() 的使用及場景

useState是 React提供的一個Hook函數,用于在函數組件中添加和管理狀態。它允許你在函數組件中定義一個可變的狀態,并在組件的生命周期中對狀態進行更新和訪問。 使用useState可以避免使用類組件時需要定義和管理繁瑣的constructor,state和se…

HOT83-打家劫舍

leetcode原題鏈接:打家劫舍 題目描述 你是一個專業的小偷,計劃偷竊沿街的房屋。每間房內都藏有一定的現金,影響你偷竊的唯一制約因素就是相鄰的房屋裝有相互連通的防盜系統,如果兩間相鄰的房屋在同一晚上被小偷闖入,系…

適配器模式(C++)

定義 將一個類的接口轉換成客戶希望的另一個接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些類可以一起工作。 應用場景 在軟件系統中,由于應用環境的變化,常常需要將“一些現存的對象 ”放在新的環境中應用,但是新環境要求…

【Golang】一文學完 Golang 基本語法

Golang 下載 安裝包鏈接:https://share.weiyun.com/InsZoHHu IDE 下載:https://www.jetbrains.com/go/ 第一個 golang 程序 package mainimport "fmt"func main() {fmt.Println("hello golang") }每個可執行代碼都必須包含 Pack…

Flutter 狀態管理 Provider

狀態管理必要性 Flutter基于聲明式構建UI,原生則是命令式,狀態管理是用于解決聲明式開發帶來的問題。 例:命令式的原生,數據更新需要拿到對應控件并更改其顯示值;而聲明式則需要更改數據值并通過setstate更新狀態&am…

sql高頻面試題-連續完成兩個指定動作的用戶統計

用戶行為分析 業務背景 某購物APP最近上線了一個新功能,用戶簽到后可以跳轉到大轉盤抽獎,抽獎獲得的獎金可以抵消購物的費用,以此來培養用戶使用app的習慣。 數據表介紹 現有一張用戶行為表action_log,主要字段如下&#xff0c…

springboot mongodb 配置多數據源

我想要的效果是,一個類統一管理多數據源,我傳個參數進去,它就能返回我對應的mongotemplate 但是根據"mongbodb 多數據源"的關鍵詞,找不到我想要的效果。 網上大多都是明確知道自己是幾個數據源,然后每個數…

Styletron: 面向組件的樣式設計工具包

styletron官網: styletron的GitHub鏈接: styletron-react 一. 介紹 Styletron是一個通用的component-oriented(面向組件的)樣式工具。它屬于css-in-js類別。Styletron可以很好地與React配合使用,但也可以與其他框架或…

docker復現nginx錯誤配置漏洞

目錄 一、nginx環境搭建 1.1搭建步驟 二、docker復現Nginx配置漏洞 2.1安裝docker 2.2復現過程 2.1CRLF(carriage return/line feed)注入漏洞 2.2.目錄穿越 一、nginx環境搭建 1.1搭建步驟 1.先創建Nginx的目錄并進入(命令如下) mkdir /soft &&…