日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

每日学到 20 - 封装、访问修饰符

發布時間:2023/12/14 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 每日学到 20 - 封装、访问修饰符 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.封裝

1)封裝性的概念

2)封裝有:

3)封裝的原則

4)封裝的好處

5)封裝缺點

6)封裝性

7) 如何實現封裝

2.包組織類

1)包的作用

2)包的創建

3)包命名規范

4)JDK提供基本包

5)使用MyEclipse創建包的兩種方法

6)導包

7)使用包的注意事項

3.類的訪問修飾符

4.static修飾符

1)static可以用來修飾

2)static的作用

5.學習黑馬的一個文字游戲


1.封裝

1)封裝性的概念

封裝性是面向對象思想的三大特征之一。

將類的某些信息隱藏在類內部,不允許外部程序直接訪問,而是通過該類提供的方法來實現對隱藏信息的操作和訪問

2)封裝有:

屬性的封裝、方法的封裝、類的封裝、組件的封裝、模塊化的封裝、系統級封裝

3)封裝的原則

將不需要對外提供的內容都隱藏起來
把屬性隱藏,對外提供訪問接口

4)封裝的好處

①模塊化
?? ??? 在一個項目中分成n個模塊,每一個模塊都是相互獨立的,組合起來成為一個項目模塊化利于整個項目的維護,哪個模塊出了問題就找哪個模塊

②信息隱藏

③代碼重用

④插件化易于測試

⑤具有安全性

5)封裝缺點

會影響執行效率

6)封裝性

如果屬性沒有封裝,那么在本類之外創建對象后,可以直接訪問屬性。

private表示私有的,私有的屬性或方法只能在本類中訪問。

共有的屬性和方法可以被類外部的其他類訪問。

想要在類外部訪問私有屬性,我們需要提供擁有的方法來間接訪問。

通常在一個類中屬性都私有化,并對外提供getter and setter方法。

7) 如何實現封裝

修改屬性的可見性

創建公有的getter/setter方法

創建公有的getter/setter方法中加入屬性控制語句

2.包組織類

1)包的作用

允許類組成較小的單元(類似文件夾),易于找到和使用相應的文件

防止命名沖突,區分名字相同的類

有助于實施訪問權限控制

2)包的創建

作為Java源代碼第一條語句
用package聲明包,以分號結尾

3)包命名規范

包名由小寫字母組成,不能以圓點開頭或結尾
包名之前最好加上唯一的前綴,通常使用組織倒置的網絡域名
包名后續部分依不同機構內部的規范不同而不同

4)JDK提供基本包

java.lang:虛擬機自動引入
java.util:提供一些實用類
java.io:輸入、輸出

5)使用MyEclipse創建包的兩種方法

分別創建包和類
創建類的過程中創建類所在的包

6)導包

為了使用不在同一包中的類,需要在Java程序中使用import關鍵字導入這個類

7)使用包的注意事項

一個類同時引用了兩個來自不同包的同名類:
?? ??? 必須通過完整類名來區分
?? ??? 每個包都是獨立的,頂層包不會包含子包的類
?? ??? package和import的順序是固定的:
?? ??? ??? ??? ?package必須位于第一行(忽略注釋行)
?? ??? ??? ??? ?只允許有一個package語句
?? ??? ??? ??? ?其次是import
?? ??? ??? ??? ?接著是類的聲明

3.類的訪問修飾符

public修飾符:公有訪問級別

private:類內訪問

默認修飾符:包級私有訪問級別

protected:包外子類訪問

4.static修飾符

1)static可以用來修飾

①成員變量
?? ??? ??? 靜態變量,可以直接通過類名訪問
?? ??? ??? ??? ??? ?類的成員變量包括
?? ??? ??? ??? ??? ??? ??? 類變量(靜態變量)
?? ??? ??? ??? ??? ??? ??? ? ? ?? 被static修飾的變量
?? ??? ??? ??? ??? ??? ??? ?????? 在內存中只有一個拷貝
?? ??? ??? ??? ??? ??? ?? ? ? ? ? 類內部,可在任何方法內直接訪問靜態變量
?? ??? ??? ??? ??? ??? ??? ?????? 其他類中,可以直接通過類名訪問
?? ??? ??? ??? ??? ??? ??? 實例變量
?? ??? ??? ??? ??? ??? ??? ?????? 沒有被static修飾的變量
?? ??? ??? ??? ??? ??? ?????????? 每創建一個實例,就會為實例變量分配一次內存,實例變量可以在內存中有多個拷貝,互不影響

②成員方法
?? ??? ??? 靜態方法,可以直接通過類名訪問

③代碼塊
?? ??? ??? 靜態代碼塊,當Java虛擬機加載類時,就會執行該代碼塊
?? ??? ??? ??? ??? ?JVM加載類時,加載靜態代碼塊
?? ??? ??? ??? ??? ?如果有多個靜態塊,按順序加載
?? ??? ??? ??? ??? ?每個靜態代碼塊只會被執行一次

2)static的作用

??????????? 能被類的所有實例共享,可作為實例之間進行交流的共享數據
?? ??? ??? ?如果類的所有實例都包含一個相同的常量屬性,可把這個屬性定義為靜態常量類型,從而節省內存空間

5.學習黑馬的一個文字游戲

兩個玩家互相攻擊,看誰的血量先到0。

public class Role {private String name;private int blood;private char gender;private String face;String[] boyfaces = {"風流俊雅", "氣宇軒昂", "相貌英俊", "五官端正", "相貌平平", "一塌糊涂", "面目猙獰"};String[] girlfaces = {"美奐絕倫", "沉魚落雁", "婷婷玉立", "身材嬌好", "相貌平平", "相貌簡陋", "慘不忍睹"};String[] attacks_desc = {"%s使出了一招【背心釘】,轉到對方的身后,一掌向%s背心的靈臺穴拍去。","%s使出了一招【游空探爪】,飛起身形自半空中變掌為抓鎖向%s。","%s大喝一聲,身形下伏,一招【劈雷墜地】,捶向%s雙腿。","%s運氣于掌,一瞬間掌心變得血紅,一式【掌心雷】,推向%s。","%s陰手蕢起陽手跟進,一招【沒遮攔】,結結實實的捶向%s。","%s上步搶身,招中套招,一招【劈掛連環】,連環攻向%s。"};String[] injureds_desc = {"結果%s退了半步,毫發無損","結果給%s造成一處瘀傷","結果一擊命中,%s痛得彎下腰","結果%s痛苦地悶哼了一聲,顯然受了點內傷","結果%s搖搖晃晃,一跤摔倒在地","結果%s臉色一下變得慘白,連退了好幾步","結果『轟』的一聲,%s口中鮮血狂噴而出","結果%s一聲慘叫,像灘軟泥般塌了下去"};public Role() {}public Role(String name, int blood, char gender) {this.name = name;this.blood = blood;this.gender = gender;setFace(gender);}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getBlood() {return blood;}public void setBlood(int blood) {this.blood = blood;}public char getGender() {return gender;}public void setGender(char gender) {this.gender = gender;}public String getFace() {return face;}public void setFace(char gender) {if (gender == '男') {int index = (int) (Math.random() * 7);this.face = boyfaces[index];} else if (gender == '女') {int index = (int) (Math.random() * 7);this.face = girlfaces[index];} else {this.face = "面目猙獰";}}public void attack(Role role) {int index1 = (int)(Math.random()*6);String KungFu = attacks_desc[index1];System.out.printf(KungFu,this.getName(),role.getName());System.out.println();int num = (int) (Math.random() * 20 + 1);int newBlood = role.blood - num;newBlood = newBlood > 0 ? newBlood : 0;role.setBlood(newBlood);if (newBlood>90){System.out.printf(injureds_desc[0],role.getName());} else if (newBlood>=80) {System.out.printf(injureds_desc[1],role.getName());}else if (newBlood>=70) {System.out.printf(injureds_desc[1],role.getName());}else if (newBlood>=60) {System.out.printf(injureds_desc[2],role.getName());}else if (newBlood>=50) {System.out.printf(injureds_desc[2],role.getName());}else if (newBlood>=40) {System.out.printf(injureds_desc[3],role.getName());}else if (newBlood>=30) {System.out.printf(injureds_desc[4],role.getName());}else if (newBlood>=20) {System.out.printf(injureds_desc[5],role.getName());}else if (newBlood>=10) {System.out.printf(injureds_desc[6],role.getName());}else {System.out.printf(injureds_desc[7],role.getName());}System.out.println();/*System.out.printf("%s的" + this.getName() + "打了%s的" + role.getName() + "一下,造成"+ num + "點傷害," + role.getName() + "剩余" + role.getBlood() + "點血量", this.face, role.face);System.out.println();*//*if (role.blood > 0) {System.out.printf("%s的" + this.getName() + "打了%s的" + role.getName() + "一下,造成"+ num + "點傷害," + role.getName() + "剩余" + role.getBlood() + "點血量", this.face, role.face);System.out.println();} else {System.out.printf("%s的" + this.getName() + "打了%s的" + role.getName() + "一下,造成"+ num + "點傷害," + role.getName() + "剩余" + role.getBlood() + "點血量", this.face, role.face);System.out.println();System.out.printf(role.getName() + "被打敗了");System.out.println();}*/}public void printPlayerInfo(){System.out.println("姓名:" +this.getName());System.out.println("性別:" +this.getGender());System.out.println("面貌:" +this.getFace());} } public class RoleTest {public static void main(String[] args) {Role player1 = new Role("張三", 100, '男');Role player2 = new Role("李四", 100, '男');player1.printPlayerInfo();player2.printPlayerInfo();while(true){player1.attack(player2);if(player1.getBlood()<=0){System.out.println(player2.getName()+"K.O了"+player1.getName());break;}player2.attack(player1);if(player2.getBlood()<=0){System.out.println(player1.getName()+"K.O了"+player2.getName());break;}}} }

總結

以上是生活随笔為你收集整理的每日学到 20 - 封装、访问修饰符的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产91免费| 国产高清在线观看视频 | 亚洲一区二区动漫 | 国产精品久久久久久亚洲伦 | 国产欧美日韩综合精品一区 | 欧美三级小说 | 动漫女被黄漫免费视频 | 91av在线看 | 国产www在线观看 | 国产裸体舞一区二区三区 | 91色吧| 亚洲最大中文字幕 | 日本免费精品视频 | 国产又色又爽无遮挡免费 | 精品视频99 | 少妇久久久| www.久久久久久久久久 | 男人天堂成人 | 日本久久片 | 欧美久久综合网 | 日韩福利在线视频 | 国产精品视频一二三 | 色婷婷麻豆 | 涩涩视频免费在线观看 | 翔田千里在线播放 | 国产一级片毛片 | 日本在线资源 | 欧美日韩系列 | 91大神福利视频 | 钰慧的mv视频在线观看 | 中文字幕超清在线免费观看 | 日本护士体内she精2xxx | 亚洲男人天堂av | www.欧美视频 | 永久免费在线看片 | 成人四色| 麻豆国产原创 | 日本毛片在线观看 | 污黄网站在线观看 | 欧美视频在线观看一区 | 亚洲精品视频中文字幕 | 欧美天天性| 久久久久人妻一区精品色 | 91偷拍一区二区三区精品 | 欧美一区二区三区四区视频 | 亚洲激情图片区 | 天天躁夜夜躁狠狠躁 | 杨幂毛片午夜性生毛片 | 9999av| 亚洲国产第一页 | 亚洲AV成人无码精电影在线 | 久久精品久久精品久久精品 | 琪琪秋霞午夜被窝电影网 | 91日韩中文字幕 | 日本久久久网站 | 国产精品资源网站 | 日本毛片网站 | 成人在线观看小视频 | 激情视频一区 | 国产精品一级二级 | 国产精品一区二区自拍 | 亚洲综合网在线观看 | 99久久精品免费 | 久久特黄视频 | 日本中文字幕在线观看 | 久久国产精品视频 | 大帝av| 狠狠干青青草 | 91精品久久久久久久久 | 永久黄网站色视频免费观看w | 久久久久久五月天 | 男同av在线观看一区二区三区 | 麻豆av电影在线 | 天堂av免费 | 午夜视频入口 | 草草影院发布页 | 欧美精品乱码久久久久久按摩 | 东北女人啪啪ⅹxx对白 | 亚洲国产精品麻豆 | 亚洲一区二区精品在线观看 | 高h喷水荡肉少妇爽多p视频 | 美女少妇毛片 | 四季av一区二区夜夜嗨 | 日本三级吹潮 | 午夜影院一区二区三区 | 欧美成人乱码一区二区三区 | www,久久久 | 国产麻豆成人传媒免费观看 | 亚洲三级在线看 | 9999热视频 | 亚洲精品www久久久久久 | 亚洲深夜在线 | 99热成人| 国产美女精品久久 | 欧美日本一二三区 | 久久视| 午夜美女福利 | 三级av在线播放 | 粉嫩av一区二区三区天美传媒 |