封裝與隱藏--java學(xué)習(xí)第六天

在創(chuàng)建類的時候缎患,類名需要單詞首字母大寫,方法名需要首字母小寫肮街,其他單詞首字母大寫,若方法名只有一個單詞時判导,首字母大寫。

在UML圖中绕辖,-是私有的仪际,+是公共的昵骤,#是protected。

一:面向?qū)ο筇卣髦唬悍庋b與隱藏

問題:當(dāng)創(chuàng)建了類的對象了以后成榜,如果直接通過“對象.屬性”的方式對相應(yīng)的對象屬性進(jìn)行賦值的話伴栓,可能會出現(xiàn)不滿足實際情況的意外(例如動物的legs只能是偶數(shù)個,不能奇數(shù))钳垮,所以我們考慮不讓對象來直接作用屬性(int legs; ?a.legs= 3),而是通過“對象.方法”的形式歧焦,來控制對象對屬性的訪問(重新定義一個方法肚医,其中對legs進(jìn)行限制)。實際情況中舰涌,對屬性的要求就可以通過方法來實現(xiàn)你稚。

但是當(dāng)兩種調(diào)用方式都可行的時候朱躺,就需要對“對象.屬性”的方式進(jìn)行限制搁痛,這里進(jìn)行private進(jìn)行限制鸡典,只能在該類被訪問。

解決的方法:(封裝性的思想)1.將類的屬性私有化谁尸,2.提供公共的 方法(setter & getter)來實現(xiàn)調(diào)用疗垛。

二:權(quán)限修飾符:public ?private ? 缺省 ?protected

注:權(quán)限從大到小的排列:public ?protected ?缺省 private

? ? ? 修飾類的權(quán)限:public ?缺省(在調(diào)用的時候,是用三角形表示缺省咬展,用圓圈表示public)?

1.對于屬性、方法和構(gòu)造器的訪問:


2.對于class的權(quán)限修飾只可以用public和default(缺省):

public類可以在任意地方被訪問涮总。

default類只可以被同一個包內(nèi)部的類訪問瀑梗。

public類除了可以被本包內(nèi)被訪問調(diào)用外,若該類需要在該包以外被繼承時抛丽,則需要導(dǎo)入其所在的包亿鲜,才能夠被進(jìn)行調(diào)用冤吨。

一個小例子:

public class TestPerson { ? ? ? ?

? ? public static void main(String[] args) {

? ? ? ? Person p = new Person();

? ? ? ? p.setAge(150);

? ? ? ? System.out.println(p.getAge());

? ? ?}

}

? ? class Person{

? ? ? ? private int age;

? ? ? ? public void setAge(int i){

? ? ? ? ? ? if(i>=0 && i <=130){

? ? ? ? ? ? ? ? ?age = i;

? ? ? ? ? ? }else {

? ? ? ? ? ? ? ? ? System.out.println("輸入的年齡有誤");

? ? ? ? ? ? ? ? ? //throw new RuntimeException("shuru de shuju youwu");

? ? ? ? ? ? ?}

? ? ? ? ? }

? ? ? ? ? public int getAge(){

? ? ? ? ? ? ? return age;

? ? ? ? ?}

}

這種情況下漩蟆,當(dāng)輸入不在0-130范圍內(nèi)時,會輸出什么怠李?

答:這種情況下會輸出:輸入的年齡有誤

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?0

若拋出那句異常,則不會再有0輸出褐奥。


類的第三個成員:構(gòu)造器(constructor 構(gòu)造方法)

constructor:建造者

構(gòu)造器的作用:1,創(chuàng)建對象 2儿倒,給創(chuàng)建的對象的屬性賦值呜笑,通過構(gòu)造器的形參傳遞

1,設(shè)計類時凰慈,若不顯示聲明類的構(gòu)造器的話微谓,程序會默認(rèn)提供一個空參的構(gòu)造器输钩。

public Person(){

}

2,一旦顯示的定義了類的構(gòu)造器买乃,那么默認(rèn)的構(gòu)造器就不再提供了剪验。若需要無參數(shù)的構(gòu)造器時,則需要重新寫一個空的夠早方法娶眷。

Person p = new?Person()疫铜;平時用的都是不帶參數(shù)的構(gòu)造方法,系統(tǒng)自動提供席揽,

Person p = new Person("5")谓厘;這個是帶參數(shù)的構(gòu)造方法,

public Person(int a){ ? ?

]

3竟稳,如果聲明類的構(gòu)造器熊痴。格式:權(quán)限修飾符 ?類名(形參){ ?} ------------無返回值

4果善,類的多個構(gòu)造器之間構(gòu)成重載

二系谐,類對象的屬性賦值的先后順序:類對象指的是new Person()

1,屬性的默認(rèn)初始(指定義了不帶參數(shù)的構(gòu)造函數(shù)以后鄙煤,系統(tǒng)一旦創(chuàng)建該對象梯刚,便自動賦值指沒有默認(rèn)值的屬性);

public Person(){ ? ? ? ? ? ? ? ? ? ? ? private String name;(默認(rèn)初始化)

name = null; ? ? ? ? ? ? ? ? ? ? ? ? ? private int age = 1;(顯示初始化)

age = 34;

}//該構(gòu)造函數(shù)不帶參數(shù)

2亡资,屬性的顯示初始化(指新建類中屬性帶有賦值)

3沟于,通過構(gòu)造器給屬性初始化(帶參數(shù)的構(gòu)造器)

4,通過“對象.方法”給屬性賦值

所以最終決定該屬性值是多少時展懈,應(yīng)該從4到1往前看,因為后面的會將前面的值覆蓋冻记。所以構(gòu)造器的賦值優(yōu)于屬性默認(rèn)和顯示的賦值冗栗。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末供搀,一起剝皮案震驚了整個濱河市葛虐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌涕蚤,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件佑钾,死亡現(xiàn)場離奇詭異休溶,居然都是意外死亡撒遣,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進(jìn)店門禾进,熙熙樓的掌柜王于貴愁眉苦臉地迎上來泻云,“玉大人狐蜕,你說我怎么就攤上這事∑殴希” “怎么了贡羔?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵猴蹂,是天一觀的道長楣嘁。 經(jīng)常有香客問我磅轻,道長,這世上最難降的妖魔是什么逐虚? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任聋溜,我火速辦了婚禮,結(jié)果婚禮上痊班,老公的妹妹穿的比我還像新娘勤婚。我一直安慰自己,他們只是感情好涤伐,可當(dāng)我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布馒胆。 她就那樣靜靜地躺著缨称,像睡著了一般。 火紅的嫁衣襯著肌膚如雪祝迂。 梳的紋絲不亂的頭發(fā)上睦尽,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天,我揣著相機(jī)與錄音型雳,去河邊找鬼当凡。 笑死,一個胖子當(dāng)著我的面吹牛沿量,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播乌妒,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼损话,長吁一口氣:“原來是場噩夢啊……” “哼匹中!你這毒婦竟也來了挂绰?” 一聲冷哼從身側(cè)響起交播,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤隧土,失蹤者是張志新(化名)和其女友劉穎辐脖,沒想到半個月后嗜价,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡届吁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了痴施。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡偷仿,死狀恐怖酝静,靈堂內(nèi)的尸體忽然破棺而出宗苍,到底是詐尸還是另有隱情让歼,我是刑警寧澤,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布馏予,位于F島的核電站呢岗,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏挫酿。R本人自食惡果不足惜猫缭,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望妖混。 院中可真熱鬧弊予,春花似錦误褪、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽稠集。三九已至,卻和暖如春词裤,著一層夾襖步出監(jiān)牢的瞬間渔肩,已是汗流浹背撑帖。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工拓瞪, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留兵钮,地道東北人。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓复亏,卻偏偏與公主長得像耕突,于是被迫代替她去往敵國和親纵诞。 傳聞我的和親對象是個殘疾皇子嗡呼,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法壕翩,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,602評論 18 399
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,638評論 18 139
  • 20- 枚舉,枚舉原始值,枚舉相關(guān)值,switch提取枚舉關(guān)聯(lián)值 Swift枚舉: Swift中的枚舉比OC中的枚...
    iOS_恒仔閱讀 2,256評論 1 6
  • (一)Java部分 1是鬼、列舉出JAVA中6個比較常用的包【天威誠信面試題】 【參考答案】 java.lang;ja...
    獨云閱讀 7,088評論 0 62
  • 東風(fēng)起芒率,雨如煙。陽光把土地翻弄的松軟無比偶芍,一腳踩上去都能感到世界的溫暖观挎。當(dāng)耕牛發(fā)出第一聲“哞……”喊醒春天查刻,喊醒開...
    營州布衣閱讀 248評論 0 5