日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

零基礎(chǔ)學(xué)JAVA之JAVA面向?qū)ο笕腴T第一季

 小小郡 2016-09-20

今天講解目錄來了:

從零開始學(xué)JAVA-04.JAVA面向?qū)ο笕腴T第一季

面向?qū)ο笏枷耄?/strong>

面向過程(PO):一種較早的編程思想,顧名思義該思想是站在過程的角度思考問題,強(qiáng)調(diào)的就是功能行為,功能的執(zhí)行過程,即先干啥,后干啥。而每一個(gè)功能我們都使用函數(shù)(類似于方法)把這些步驟一步一步實(shí)現(xiàn),使用的時(shí)候依次調(diào)用函數(shù)就可以了。

說人話:提倡和注重的:每一個(gè)功能都使用函數(shù)來完成,在使用某一個(gè)功能的時(shí)候,就挨著挨著調(diào)用函數(shù)即可.

案例:設(shè)計(jì)購(gòu)物、做飯、吃飯,洗碗、以及寫代碼的程序。

面向過程最大的問題在于隨著系統(tǒng)的膨脹,面向過程將無法應(yīng)付,最終導(dǎo)致系統(tǒng)的崩潰。為了解決這一種軟件危機(jī),我們提出面向?qū)ο笏枷搿?/p>

面向?qū)ο?OO):一種基于面向過程的新的編程思想,顧名思義該思想是站在對(duì)象的角度思考問題,我們把多個(gè)功能合理的放到不同對(duì)象里,強(qiáng)調(diào)的是具備某些功能的對(duì)象。

具備某種功能的實(shí)體,稱為對(duì)象.

從零開始學(xué)JAVA-04.JAVA面向?qū)ο笕腴T第一季

面向?qū)ο蟮膬?yōu)勢(shì)和特點(diǎn):

---------------------------------------------------------

面向?qū)ο蟾臃衔覀兂R?guī)的思維方式,穩(wěn)定性好,可重用性強(qiáng),易于開發(fā)大型軟件產(chǎn)品,有良好的可維護(hù)性。

當(dāng)然上述例子僅僅只是說明了面向?qū)ο蟮囊粋€(gè)特征——封裝。除此之外面向?qū)ο筮€有兩大特征,我們?cè)诰唧w講解到的時(shí)候再做分析。

三大特征:

封裝(Encapsulation);

繼承(Inheritance);

多態(tài)(Polymorphism);

封裝是指將對(duì)象的實(shí)現(xiàn)細(xì)節(jié)隱藏起來,然后通過公共的方法來向外暴露該對(duì)象的功能。

繼承是面向?qū)ο髮?shí)現(xiàn)軟件復(fù)用的重要手段,當(dāng)子類繼承父類后,子類是一種特殊的父類,能直接或間接獲得父類里的成員。

多態(tài)是可以直接把子類對(duì)象賦給父類變量,但是運(yùn)行時(shí)依然表現(xiàn)出子類的行為特征,這意味著同一類型的對(duì)象在運(yùn)行時(shí)可能表現(xiàn)出不同的行為特征。

注意:

千萬不要誤解為面向?qū)ο笠欢ň蛢?yōu)于面向過程的設(shè)計(jì).

面向?qū)ο笫腔诿嫦蜻^程的,永遠(yuǎn)不可能取代面向過程.

對(duì)象和類的關(guān)系:

你在街上看到一個(gè)美女,就可以把這個(gè)美女看成一個(gè)對(duì)象,那么該對(duì)象有兩方面的定義:狀態(tài)和行為。

美女有狀態(tài),如身高,年齡,皮膚顏色等等;美女還有行為,如走路,說話,拋媚眼等等。

作為基本定義,對(duì)象(object)可以定義成包含數(shù)據(jù)(狀態(tài))和行為的一個(gè)實(shí)體,對(duì)象也稱為實(shí)例(instance)。

-----------------------------------------------------------------------------------------------------

對(duì)象:

對(duì)象是人們要進(jìn)行研究任何事物,一切事物都可以認(rèn)為是對(duì)象。

對(duì)象具有狀態(tài)和行為:

對(duì)象具有狀態(tài),比如姓名,年齡,性別等。

對(duì)象還有行為,比如吃飯,睡覺,寫代碼等。

-----------------------------------------------------------------------------------------------------

類(類型):

具有相同特性(數(shù)據(jù)元素)和行為(功能)的多個(gè)對(duì)象的抽象就是類。因此,對(duì)象的抽象是類,類的具體化就是對(duì)象,也可以說類的實(shí)例是對(duì)象,類實(shí)際上就是一種數(shù)據(jù)類型。

類具有特性,對(duì)象的狀態(tài),用成員變量來描述。

類具有功能,對(duì)象的行為,用方法來描述。

-----------------------------------------------------------------------------------------------------

什么是類:類是對(duì)象的類型/模板。創(chuàng)建一個(gè)對(duì)象,就是使用一個(gè)類作為構(gòu)建該對(duì)象的基礎(chǔ)。

-----------------------------------------------------------------------------------------------------

在編程的世界:是先有類,再有對(duì)象,對(duì)象是根據(jù)類創(chuàng)建出來的.

從零開始學(xué)JAVA-04.JAVA面向?qū)ο笕腴T第一季

類的定義

案例:分析出對(duì)象和類,以及對(duì)象具備的狀態(tài)和行為。

---------------------------------------------------------------

春哥,現(xiàn)年31歲,身高175cm,體重55kg,會(huì)跳舞,會(huì)唱歌;

鳳姐,現(xiàn)年30歲,身高145cm,體重48kg,會(huì)跳舞,會(huì)唱歌;

---------------------------------------------------------------

名詞解析法:

名詞:對(duì)象/對(duì)象的狀態(tài)

動(dòng)詞:對(duì)象的功能/行為

---------------------------------------------------------------

人類:

狀態(tài):

名字

年齡

身高

體重

行為:

唱歌

跳舞

---------------------------------------------------------------

在程序中,對(duì)象的狀態(tài)使用成員變量表示,對(duì)象的行為使用方法表示..


類的定義:

class 類名

{

0 ~ N個(gè)成員變量(字段(Field));

0 ~ N個(gè)方法

}

注意:

1:若類使用public修飾,則當(dāng)前所在的文件名必須和類名相同.

在以后的開發(fā)中,都是一個(gè)文件一個(gè)類,都建議使用public修飾.

2:類型必須符合標(biāo)識(shí)符的命名規(guī)范(使用名詞,首字母大寫.).

從零開始學(xué)JAVA-04.JAVA面向?qū)ο笕腴T第一季

對(duì)象基本操作:

對(duì)象的創(chuàng)建和使用:

在程序中,必須先有類,再有對(duì)象(先得有模板,再有根據(jù)模板制造出來的個(gè)體).

1):創(chuàng)建對(duì)象 :類 對(duì)象名 = new 類名();

2):對(duì)象調(diào)用方法:對(duì)象名.方法名([實(shí)參]);

3):對(duì)象操作字段

賦值: 對(duì)象名.變量 = 值;

取值: 變量 = 對(duì)象名.變量;

4):打印對(duì)象:

默認(rèn)輸出:Servant@659e0bfd,對(duì)象的類型@十六進(jìn)制的hashCode,

和數(shù)組一樣,看不到對(duì)象中的數(shù)據(jù),期待我們講解Object類.

5):比較對(duì)象:

每次new,都會(huì)在堆內(nèi)存開辟新的內(nèi)存空間.

而"==",在比較引用類型的時(shí)候,比較的是引用的內(nèi)存地址值.

6):對(duì)象的生命周期.

從使用new在堆中開辟內(nèi)存開始,到垃圾回收期回收之間.

垃圾:內(nèi)存中的某一塊空間沒有被某一個(gè)變量所引用.

垃圾產(chǎn)生時(shí),不一定運(yùn)行GC,GC是自行調(diào)度,程序員控制不了.

7):匿名對(duì)象.

沒有名字的對(duì)象,就是創(chuàng)建對(duì)象時(shí),沒有賦給一個(gè)變量.

new Servant();創(chuàng)建一個(gè)匿名對(duì)象

只在堆中開辟內(nèi)存空間,不會(huì)被棧中的變量所引用.

特點(diǎn):匿名對(duì)象只能使用一次,就是剛剛創(chuàng)建的這一次.

對(duì)象的實(shí)例化過程:

從零開始學(xué)JAVA-04.JAVA面向?qū)ο笕腴T第一季


構(gòu)造器:

我們?cè)趧?chuàng)建Student對(duì)象,代碼如下:

Student s1 = new Student();

其實(shí)我們?cè)趧?chuàng)建對(duì)象的時(shí)候,都是調(diào)用構(gòu)造方法,構(gòu)造函數(shù)/構(gòu)造器/構(gòu)造子.

--------------------------

構(gòu)造器:主要用于創(chuàng)建對(duì)象并返回對(duì)象和初始化對(duì)象數(shù)據(jù).

--------------------------

構(gòu)造器的特點(diǎn):

類都有一個(gè)默認(rèn)構(gòu)造器,當(dāng)不顯示的定義構(gòu)造器的時(shí)候,編譯器會(huì)在編譯的時(shí)候,提供一個(gè)默認(rèn)構(gòu)造器.

1):構(gòu)造器的名字必須和當(dāng)前所在類的類名相同.

2):不需要定義返回值類型,更加不能使用void作為返回.構(gòu)造器的目的在于創(chuàng)建和返回當(dāng)前類的對(duì)象,即使要編寫返回類型,也應(yīng)該是當(dāng)前類名,如:Student Student(){},既然和當(dāng)前類名相同,就規(guī)定統(tǒng)統(tǒng)省略.

3):構(gòu)造器中不需要使用return來返回當(dāng)前構(gòu)造的對(duì)象.

-----------------------------

1):無參數(shù),無方法體.

2):構(gòu)造器的訪問修飾符和當(dāng)前類的修飾符相同(是否有public).

3):一旦在類中顯示地提供了構(gòu)造器,則默認(rèn)的構(gòu)造器就不再提供了.

推論: 一個(gè)類至少有一個(gè)構(gòu)造器(即使沒有自定義,編譯器也會(huì)創(chuàng)建一個(gè)默認(rèn)的).

-----------------------------------------

public class Student{

默認(rèn)的構(gòu)造器

public Student(){}

}

---------------

class Student{

默認(rèn)的構(gòu)造器

Student(){}

}

-------------------------------------------------------

方法的重載:在同一個(gè)類中,方法同名,但是參數(shù)列表不同.

解決了相同的功能方法,因?yàn)閰?shù)列表不同,而帶來參數(shù)名不同的問題.

構(gòu)造器重載:

不同類的構(gòu)造器是不相同的. 對(duì)于構(gòu)造器重載來說,肯定是在同一個(gè)類中,并且構(gòu)造器都是和類名相同.

所以在同一個(gè)類中的多個(gè)構(gòu)造器就必須參數(shù)列表不同(參數(shù)類型,參數(shù)個(gè)數(shù),參數(shù)順序).

-------------------------------------------------------

Student(){}

Student(String name){}

Student(String name,int age){}

上述的構(gòu)造器就是重載關(guān)系.

-------------------------------------------------------

static修飾符:

類是用來描述多個(gè)對(duì)象共同的狀態(tài)和行為的,就拿人的姓名.

看右圖,春哥和鳳姐這個(gè)兩個(gè)對(duì)象,都有擁有姓名,年齡身高和體重等狀態(tài),但是不同對(duì)象的狀態(tài)值卻不一樣.此時(shí)發(fā)現(xiàn),我們所描述的信息是針對(duì)于某一個(gè)具體對(duì)象的,對(duì)象不同,那么名字是可能不一樣的.

---------------------------------------------------------------

現(xiàn)在,我想描述一類事物的狀態(tài)和行為,比如:人類,有總?cè)藬?shù)的狀態(tài),有毀滅的行為.

可能有人認(rèn)為,毀滅是一個(gè)行為,那么可以在Person類中,定義一個(gè)方法(destory),若想毀滅人類,則調(diào)用該方法即可.但是新的問題又來了?到底誰來調(diào)用destory方法?

春哥.destory();

鳳姐.destory();

都不對(duì)的,因?yàn)樗麄冎荒鼙硎咀约?不能表示人類.

----------------------------------------------------------------

我們平時(shí)在類中定義的成員變量和方法,都是對(duì)象的狀態(tài)和行為.

那如何表示,一類事物的狀態(tài)和行為呢?不是某一個(gè)個(gè)體(對(duì)象)的.

此時(shí),為了解決該問題,咱們得學(xué)習(xí)一個(gè)修飾符:static.

-----------------------------------------------------------------

static可以修飾成員變量(字段),可以修飾方法等,就表明該字段或該方法屬于類,而不屬于某一個(gè)對(duì)象.

-----------------------------------------------------------------

類成員(static修飾成員)的特點(diǎn):

1):隨著類被加載進(jìn)JVM而同時(shí)也最初始化和在內(nèi)存中分配空間.

2):優(yōu)先于對(duì)象存在.(對(duì)象是通過new出來的.)

3):被該類的所有對(duì)象所共享.

該狀態(tài)/行為是整個(gè)人類的,那么每一個(gè)人都是擁有該狀態(tài)/行為的.

4):直接使用類名調(diào)用即可.

人類毀滅: Person.destory();

類成員和實(shí)例成員的訪問:

------------------------------------------------

類 成員:使用static修飾的成員變量/方法,屬于類,所以可以直接使用類名訪問.

實(shí)例成員:沒有使用static修飾的成員變量/方法,屬于對(duì)象.必須使用對(duì)象來訪問.

----------------------------------------------------------------------------------

訪問規(guī)則:

1):靜態(tài)方法只能訪問靜態(tài)的成員變量/方法,不能訪問非靜態(tài)的成員變量/方法(屬于對(duì)象).

靜態(tài)成員優(yōu)先于對(duì)象存在.

2):非靜態(tài)方法可以訪問非靜態(tài)成員變量/方法,也可以訪問靜態(tài)的成員變量/方法.

因?yàn)榈讓邮褂脤?duì)象訪問的.

3):對(duì)象可以訪問靜態(tài)成員,但是不推薦,因?yàn)榈讓右廊皇褂妙惷谡{(diào)用.

4):類可以訪問靜態(tài)成員,類不能訪問非靜態(tài)成員(成員變量/方法).

-----------------------------------------------------------------------------------

一般的,在開發(fā)中類成員如何使用:

一般的,在開發(fā)中工具類的工具方法都使用static修飾,如此的好處,直接使用工具類名.方法就可以調(diào)用,使用更加簡(jiǎn)單.

數(shù)組的工具類:java.util.Arrays中的工具方法.

一般的,若靜態(tài)方法需要訪問一個(gè)成員變量,此時(shí)才把成員變量使用static修飾.

學(xué)習(xí)大綱:

從零開始學(xué)JAVA-04.JAVA面向?qū)ο笕腴T第一季

學(xué)習(xí)Java的同學(xué)注意了?。?!

學(xué)習(xí)過程中遇到什么問題或者想獲取學(xué)習(xí)資源的話,歡迎加入Java學(xué)習(xí)交流群,群號(hào)碼:559743457【長(zhǎng)按復(fù)制】 我們一起學(xué)Java!




    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多