2020-04-29

面向?qū)ο?.0

1、多類合作

1.1PC類

屏幕

????屏幕可以看做是一個類

????成員變量:

????????品牌

????????尺寸

鍵盤

????鍵盤也可以看做是一個類

????成員變量:

????????品牌

????????按鍵個數(shù)

PC電腦類

????成員變量:

????????屏幕類對象

????????鍵盤類對象

????成員方法:

????????換屏幕

????????換鍵盤

????????電腦展示配置

1.2屏幕類代碼實現(xiàn)

/**

* 屏幕類

*

* @author Anonymous

*

*/

public class Screen {

????// 成員變量? Field

????private String name;

????private float size;

????// 構(gòu)造方法 Constructor

????public Screen() {}

????public Screen(String name, float size) {

????????super();

????????this.name = name;

????????this.size = size;

????}

????// setter 和 getter 方法

????public String getName() {

????????return name;

????}

????public void setName(String name) {

????????this.name = name;

????}

????public float getSize() {

????????return size;

????}

????public void setSize(float size) {

????????this.size = size;

????}

}

1.3鍵盤類代碼實現(xiàn)

/**

* 鍵盤類

*

* @author Anonymous

*

*/

public class Keyboard {

????// 成員變量 Field

????private String name;

????private int keyCount;

????// 構(gòu)造方法 Constructor

????public Keyboard() {}

????public Keyboard(String name, int keyCount) {

????????this.name = name;

????????this.keyCount = keyCount;

????}

????// setter 和 getter 方法 Method

????public String getName() {

????????return name;

????}

????public void setName(String name) {

????????this.name = name;

????}

????public int getKeyCount() {

????????return keyCount;

????}

????public void setKeyCount(int keyCount) {

????????this.keyCount = keyCount;

????}

}

1.4PC類代碼實現(xiàn)

/*

PC電腦類

????成員變量:

????????屏幕類對象

????????鍵盤類對象

????成員方法:

????????換屏幕

????????換鍵盤

*/

public class PC {

????// 成員變量 Field

????/**

????* Screen自定義屏幕類對象呢蔫,作為PC類的成員變量

????*/

????private Screen screen;

????/**

????* Keyborad自定義鍵盤類對象,作為PC類的成員變量

????*/

????private Keyboard keyboard;

????// 構(gòu)造方法 Constructor

????public PC() {}

????/**

????* PC類有參數(shù)構(gòu)造方法灼捂,需要的參數(shù)是Screen類對象,和Keyboard類對象

????*

????* @param screen? Screen屏幕類對象

????* @param keyboard Keyboard鍵盤類對象

????*/

????public PC(Screen screen, Keyboard keyboard) {

????????this.screen = screen;

????????this.keyboard = keyboard;

????}

????/**

????* 設(shè)置Screen屏幕類對象成員變量的方法换团,需要的是一個Screen類對象作

????為方法的參數(shù)

????*

????* @param screen Screen類對象

????*/

????public void setScreen(Screen screen) {

????????this.screen = screen;

????}

????/**

????* 獲取屏幕類對象

????*

????* @return Screen類對象

????*/

????public Screen getScreen() {

????????return screen;

????}

????/**

????* 設(shè)置Keyboard鍵盤類對象成員變量的方法悉稠,需要的參數(shù)是一個Keyboard

????鍵盤類對象

????*

????* @param keyboard Keyboard鍵盤類對象

????*/

????public void setKeyboard(Keyboard keyboard) {

????????this.keyboard = keyboard;

????}

????/**

????* 獲取一個鍵盤類對象

????*

????* @return Keyboard鍵盤類對象

????*/

????public Keyboard getKeyboard() {

????????return keyboard;

????}

????/*

????* PC類成員方法,用于展示電腦配置 電腦運行魯大師K野5拿汀!查看電腦配置

????*

????* 在整個方法中辑甜,獲取數(shù)據(jù)都是通過類對象的方式來獲取的衰絮,全部是按照面

????向?qū)ο笏枷雭硗瓿傻?在代碼中要注意方法的調(diào)用者是誰!A状住猫牡!

????* 代碼中存在的兩個getName方法是完成不同的!5讼摺淌友!

????*/

????public void show() {

????????System.out.println("屏幕品牌:" + screen.getName() + " 屏幕尺寸:" + screen.getSize());

????????System.out.println("鍵盤品牌:" + keyboard.getName() + " 鍵盤按鍵個數(shù):" + keyboard.getKeyCount());

????}

}

1.5 main方法

public class Demo {

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

????????// 先進貨,既然需要組裝電腦骇陈,需要鍵盤和屏幕

????????// Screen 是一個類型? screen是一個屏幕類對象

????????Screen screen = new Screen("三星", 15.6F);

????????Keyboard keyboard = new Keyboard("雙飛燕", 104);

????????// 組裝電腦 使用屏幕類對象和鍵盤類對象作為參數(shù)震庭,創(chuàng)建PC類對象

????????PC pc = new PC(screen, keyboard);

????????// PC類show方法,展示電腦配置

????????pc.show();

????????System.out.println("------------------------------");

????????// 屏幕不好使你雌,換一個屏幕

????????// 進貨一個新的屏幕

????????Screen screen2 = new Screen("BOE", 24F);

????????// 調(diào)用PC的setScreen器联,更換屏幕

????????pc.setScreen(screen2);

????????// 展示電腦配置

????????pc.show();

????????System.out.println("------------------------------");

????????// 鍵盤不好使,換一個鍵盤

????????// 進貨一個新的鍵盤

????????Keyboard keyboard2 = new Keyboard("阿米洛", 87);

????????// 調(diào)用PC的setKeyboard方法婿崭,更換鍵盤

????????pc.setKeyboard(keyboard2);

????????// 展示電腦配置

????????pc.show();

????}

}

2拨拓、多類合作總結(jié)

1. 類和對象的操作模式

????類是數(shù)據(jù)類型定義

????對象是目前操作成員方法,操作成員變量的核心

2. 這兩組代碼在main方法中基本上全部是一個面向?qū)ο笏枷?/p>

????a. 自定義數(shù)據(jù)類型氓栈,自定義類對象渣磷,作為方法參數(shù)。

????b. 通過類對象來操作代碼方式授瘦,所有的內(nèi)容都是和對象相關(guān)

3. 代碼需要閱讀醋界,一定要閱讀>顾巍!形纺!

????不要斷章取義G鹣馈!挡篓!

? ? 就是的

4. 代碼中要什么你給什么

3婉陷、匿名對象

3.1匿名對象概述

Person person = new Person("騷杰", 66, '男');

Person 類名

person 對象名

new Person(...) 像內(nèi)存的堆區(qū)申請空間帚称,創(chuàng)建一個Person類對象使用的內(nèi)存空間

匿名對象

????沒有名字的對象官研,沒有對象名的對象

格式:

????new 構(gòu)造方法(所需參數(shù))

用途

????1. 提高開發(fā)效率,隱形眼鏡日拋闯睹,一次性筷子

????匿名對象當(dāng)前行使用之后戏羽,如果沒有其他引用數(shù)據(jù)類型的變量保存其地址,

????直接銷毀

????2. 簡化代碼結(jié)構(gòu)

????3. 通過匿名對象直接調(diào)用成員方法

????4. 使用匿名對象作為方法的參數(shù)

3.2代碼演示

class Dog {

????// 成員變量 Field

????String name;

????// 成員方法 Method

????public void sleep() {

????????System.out.println("小狗睡覺~~~");

????}

}

public class Demo1 {

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

????????// 常見模式

????????Dog dog = new Dog();

????????dog.sleep();

????????System.out.println("---------------------");

????????// 使用匿名對象直接調(diào)用成員方法

????????// 通過匿名對象調(diào)用方法之后楼吃,當(dāng)前匿名對象銷毀

????????new Dog().sleep();

????????// 只要有new關(guān)鍵字始花,重新創(chuàng)建對象,不存在同一個對象

????????System.out.println(new Dog());

????????System.out.println(new Dog());

????????System.out.println("---------------------");

????????// 匿名對象不推薦使用成員變量孩锡,因為肉包子打狗酷宵,有去無回

????????// 以下代碼中是三個完全不同的Dog類對象,給其中任何一個賦值都是

????????無法取出的

????????new Dog().name = "騷杰";

????????new Dog();

????????System.out.println(new Dog().name);

????????System.out.println("---------------------");

????????Dog dog2 = new Dog();

????????useDog(dog2);

????????// 匿名對象直接作為方法的參數(shù)躬窜,【常用】

????????useDog(new Dog());

????????// 下面這一行代碼浇垦,你們要保證不要問我!H侔ぁ男韧!我只做演示,

????????后面一定會講 緩沖字節(jié)輸入流

????????// BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream(new File("C:/aaa/1.txt")));

????}

????/**

????* 該方法需要的參數(shù)是一個Dog類對象

????*

????* @param dog Dog類對象

????*/

????public static void useDog(Dog dog) {

????????dog.sleep();

????}

}

3.3總結(jié)

1. 匿名對象是為了提供開發(fā)效率默垄,節(jié)約內(nèi)存使用此虑,同時讓代碼更加貼近于真實操作

2. 匿名對象常用方式

????第一個是直接使用匿名對象調(diào)用成員方法

????第二個是直接使用匿名對象作為方法的參數(shù)

3. 匿名對象【禁止】使用成員變量

4、繼承【重點】

4.1代碼中比較好理解的繼承

游戲

????英雄聯(lián)盟中的所有英雄

????????血量口锭,藍量朦前,攻擊力,法術(shù)強度鹃操,魔抗韭寸,護甲,攻擊速度组民,CD......

????????每一個英雄都會有以上的屬性棒仍,但是各自使用的方式,技能臭胜,模型是不一樣的

????PUBG

????????很多建筑都是類似的莫其?

????????拼圖樓癞尚,學(xué)區(qū)房,假車庫乱陡,爛尾樓浇揩,二層小樓

????????樓宇之間有很多相似之處,都是基于一種模型實現(xiàn)的

????PUBG人物

????????人物物理模型是一樣的憨颠,速度胳徽,跳躍...

????????裝束不一樣~~~

4.2生活中的繼承

財產(chǎn)繼承

子承父業(yè)

樣貌繼承

家族繼承

祖?zhèn)髅胤?/p>

4.3小總結(jié)

繼承在開發(fā)中是一種抽象的歸納總結(jié)思想,剝離通用的屬性爽彤,通用的方法养盗,簡化之后的開發(fā)壓力。只需要在繼承之后适篙,滿足個性化的實現(xiàn)即可往核。

通過繼承可以優(yōu)化代碼,在JavaWEB開發(fā)中嚷节,繼承大多數(shù)情況下聂儒,都是用來提高方法的復(fù)用度。

4.4Java中繼承如何完成

關(guān)鍵字:

????extends

格式:

????class A extends B { }

????A類是B類的一個子類

????B類是A類的唯一父類

【Java是一門單繼承語言硫痰,一個類有且只能繼承一個父類】

4.5繼承代碼演示

class Father {

????public int height;

????private int testPrivate;

????public void game() {

????????System.out.println("釣魚衩婚,象棋~~~");

????}

????private void privateMethod() {

????????System.out.println("私有化方法");

????}

}

/*

* Son類是Father類的一個子類

* Father類是Son類的唯一父類

*/

class Son extends Father {

????public int age;

????public void study() {

????????System.out.println("子類學(xué)習(xí)方法!PО摺非春!好好學(xué)習(xí),天天向上鳍悠!");

????}

}

public class Demo1 {

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

????????// 創(chuàng)建一個Father類對象

????????Father father = new Father();

????????// 通過Father類對象税娜,使用father類內(nèi)的成員變量和成員方法

????????father.height = 170;

????????father.game();

????????System.out.println(father.height);

????????System.out.println("------------------------------------");

????????// 創(chuàng)建一個Son類對象

????????Son son = new Son();

????????// 使用Son類對象,調(diào)用Son類自己的成員變量和成員方法

????????son.age = 16;

????????son.study();

????????System.out.println(son.age);

????????// 使用Son類的對象藏研,調(diào)用通過繼承得到的父類【內(nèi)容】

????????// 可以使用Father類內(nèi)height 成員變量敬矩,height成員變量是使用public修飾的

????????son.height = 172;

????????// 可以使用Father類內(nèi)的game 成員方法,game成員方法使用public修飾

????????son.game();

????????// private修飾的成員變量蠢挡,和成員方法不能繼承給子類使用

????????// The field Father.testPrivate is not visible

????????// son.testPrivate = 10;

????????// The method privateMethod() from the type Father is not visible

????????// son.privateMethod();

????}

}

4.6繼承小總結(jié)

1. A類使用extends關(guān)鍵字繼承B類

????A類是B類的一個子類弧岳,B類是A類的唯一父類

2. 繼承之后,子類可以通過繼承得到父類中非私有化成員變量业踏,和非私有化成員方法

3. 繼承之后禽炬,子類不可以通過繼承得到父類中的私有化成員變量,和私有化成員方法勤家。

????????private修飾的內(nèi)容有且只能在類內(nèi)使用8辜狻!伐脖!

4.7有其父才有其子【難點】



?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末热幔,一起剝皮案震驚了整個濱河市乐设,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌绎巨,老刑警劉巖近尚,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異场勤,居然都是意外死亡戈锻,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進店門和媳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來格遭,“玉大人,你說我怎么就攤上這事窗价∪缤ィ” “怎么了?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵撼港,是天一觀的道長。 經(jīng)常有香客問我骤竹,道長帝牡,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任蒙揣,我火速辦了婚禮靶溜,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘懒震。我一直安慰自己罩息,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布个扰。 她就那樣靜靜地躺著瓷炮,像睡著了一般。 火紅的嫁衣襯著肌膚如雪递宅。 梳的紋絲不亂的頭發(fā)上娘香,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天,我揣著相機與錄音办龄,去河邊找鬼烘绽。 笑死,一個胖子當(dāng)著我的面吹牛俐填,可吹牛的內(nèi)容都是我干的安接。 我是一名探鬼主播,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼英融,長吁一口氣:“原來是場噩夢啊……” “哼盏檐!你這毒婦竟也來了呀打?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤糯笙,失蹤者是張志新(化名)和其女友劉穎贬丛,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體给涕,經(jīng)...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡豺憔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了够庙。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片恭应。...
    茶點故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖耘眨,靈堂內(nèi)的尸體忽然破棺而出昼榛,到底是詐尸還是另有隱情,我是刑警寧澤剔难,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布胆屿,位于F島的核電站,受9級特大地震影響偶宫,放射性物質(zhì)發(fā)生泄漏非迹。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一纯趋、第九天 我趴在偏房一處隱蔽的房頂上張望憎兽。 院中可真熱鬧,春花似錦吵冒、人聲如沸纯命。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽亿汞。三九已至,卻和暖如春结耀,著一層夾襖步出監(jiān)牢的瞬間留夜,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工图甜, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留碍粥,地道東北人。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓黑毅,卻偏偏與公主長得像嚼摩,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,675評論 2 359