導航:首頁 > 編程語言 > 對java面向對象的理解

對java面向對象的理解

發布時間:2022-07-21 21:36:51

java中什麼是面向對象

在java的學習中,面向對象應該是java技術的重中之重,雖然在生活中沒有對象可以面對,但在技術中還是要一直接觸面對對象,而且不可避免。今天對面向對象來了一個小總結。

一、面向對象的特點:
1、將復雜的事情簡單化。
2、面向對象將以前的過程中的執行者,變成了指揮者。
3、面向對象這種思想是符合現在人們思考習慣的一種思想。
過程和對象在我們的程序中是如何體現的呢?過程其實就是函數;對象是將函數等一些內容進行了封裝。
二、匿名對象使用場景:
1、當對方法只進行一次調用的時候,可以使用匿名對象。
2、當對象對成員進行多次調用時,不能使用匿名對象。必須給對象起名字。
三、在類中定義其實都稱之為成員。成員有兩種:
1、成員變數:其實對應的就是事物的屬性。
2、成員函數:其實對應的就是事物的行為。
所以,其實定義類,就是在定義成員變數和成員函數。但是在定義前,必須先要對事物進行屬性和行為的分析,才可以用代碼來體現。
四、類中怎麼沒有定義主函數呢?
注意:主函數的存在,僅為該類是否需要獨立運行,如果不需要,主函數是不用定義的。主函數的解釋:保證所在類的獨立運行,是程序的入口,被jvm調用。
五、成員變數和局部變數的區別:
1、成員變數直接定義在類中;局部變數定義在方法中,參數上,語句中。
2、成員變數在這個類中有效;局部變數只在自己所屬的大括弧內有效,大括弧結束,局部變數失去作用域。
3、成員變數存在於堆內存中,隨著對象的產生而存在,消失而消失;局部變數存在於棧內存中,隨著所屬區域的運行而存在,結束而釋放。
六、構造函數和一般函數有什麼區別呢?
1、兩個函數定義格式不同。
2、構造函數是在對象創建時,就被調用,用於初始化,而且初始化動作只執行一次。
一般函數,是對象創建後,需要調用才執行,可以被調用多次。
七、創建一個對象都在內存中做了什麼事情?
1、先將硬碟上指定位置的Person.class文件載入進內存。
2、執行main方法時,在棧內存中開辟了main方法的空間(壓棧-進棧),然後在main方法的棧區分配了一個變數p。
3、在堆內存中開辟一個實體空間,分配了一個內存首地址值。new
4、在該實體空間中進行屬性的空間分配,並進行了默認初始化。
5、對空間中的屬性進行顯示初始化。
6、進行實體的構造代碼塊初始化。
7、調用該實體對應的構造函數,進行構造函數初始化。
8、將首地址賦值給p ,p變數就引用了該實體。(指向了該對象)

② 什麼是java面向對象編程

面向對象編程(oop)旨在將現實世界中的概念模擬到計算機中,它將現實世界中的所以事物視作對象。對象是存在的具體實體,具有明確定義的狀態和行為。

③ java的面向對象是什麼意思,能不能用通俗的話解釋一下

面向對象的簡單理解就是,你可以把現實中的每一件物品都看作是一個對象,這個物品的信息看作是對象屬性,物品功能看作是對象方法

比如,身份證,這是一個對象,身份證上的姓名,籍貫地址,開卡所,有效期等等信息看作是這個對象的屬性,身份證可以刷卡,那麼刷卡這個動作就是身份證對象的方法/事件
再比如你開的車子,車子本身是對象,車輛類型,購買時間,里程數,手動/自動,耗油數,座位數,等等這些屬於這兩車子的信息都是屬性,前進,轉彎,後退,這些動作都是車輛方法;比如保養,年審,事故,修改里程公里數等等這些東西也是車輛的方法,但也同時是車輛的事件,所以這里單獨稱為事件方法,事件是方法,方法不一定是事件.不知道說的清楚嗎

④ 用java進行面向對象編程,面向對象是什麼意思,請通俗一點解釋

通俗一點說就是你可以設定一個類,比如汽車類Car。汽車有很多屬性,比如顏色color,品牌brand。
然後呢,你new一個對象出來。Car myCar=new Car()
類具體到某一個特定的個體的時候,就是一個對象了。
我們可以給myCar設定顏色和品牌,還可以讓它干好多別的事情。
再說人類。人類是一個很大的群體,但是特定到某一個人,比如你,比如我,比如小明,張三,李四,每個特定的人,都是一個對象,他屬於「人」這個類
你先明白java中類的概念。類具體到某個實例,就是對象了

⑤ Java中面向對象到底是什麼意思求解,謝謝。

Java面向對象思想和三大特性

面向對象:

1、面向對象

面向對象是一種程序設計思想,計算機程序的設計實質上就是將現實中的一些事物的特徵抽離出來描述成一些計算機事件的過程,這種抽象的過程中,我們把具體的事物封裝成一個一個的整體進行描述,使被描述的對象具備一些系統性、整體性的的行為和特徵,我們把這種設計思想稱為面向對象。

2、面向對象與面向過程

2.1、面向過程是早期的程序語言設計思想,該思想強調事物的行為細節,即程序的設計不需要封裝成一個個的整體,而是將整個程序描述成一個行為,所有行為細節都按照固定方式一步一步的執行,執行程序就是執行某一行為的過程。

2.2、面向對象和面向過程都是一種思想,面向對象是相對於面向過程而言的,

面向過程強調的是具體的功能行為,而面向對象將功能封裝進對象,強調具備了功能的對象,面向對象是基於面向過程的,但面向對象思想更接近於現實場景。

三大特性:

1、封裝

1.1、封裝是指:隱藏對象的屬性和實現細節,僅對外提供公共訪問方式

1.2、封裝的好處:

(1)將外界的變化隔離,使程序具備獨立、安全和穩定性。

(2)便於設計者使用,提高代碼的復用性

1.3、封裝的原則

(1)將不需要對外提供的內容都隱藏起來

(2)把實現細節隱藏,提供可以對其進行訪問公共的方式

1.4、封裝的方式

將某一功能、屬性抽離出來,獨立寫成單獨的方法或類

設置訪問許可權

(1)設置訪問許可權可以限定該功能或屬性可以被特定的訪問者訪問,保證了程序的安全性和功能的穩定性。

(2)java對類和類中成員都定義了特定的訪問修飾符

類:public(公共的)、default(默認的,不寫就默認是它)

類中成員:public、protected、default(默認的)、private

註:類的訪問修飾符可以不寫(默認的),也可以寫public(公共的),一個java文件中只能有一個被public修飾的類,且被public修飾的類類名必須要跟文件名一致(包括大小寫一致),否則編譯會出錯,為了方便閱讀,類名的命名規范是單詞的首字母大寫,多個單片語成的類名每個單詞的首字母都大寫

2、繼承

2.1、繼承是從已有的類中派生出新的類,新的類能吸收已有類的數據屬性和行為,並能擴展新的功能,或者說將事物的共性的功能和屬性抽取出來定義成一個父類,讓後來具有更多樣化實現的子類繼承父類。

2.2、繼承的作用:

(1)父類具備的方法子類可以直接繼承過來,不用重新書寫,提高了代碼的復用性

(2)讓類與類之間產生關系,有了關系才有多態的實現

(3)Java中只支持單繼承,不支持多繼承,因為多繼承存在安全隱患(當多個父類存在同個功能時,子類不確定要運行哪一個),Java支持多層繼承,即父類還可以繼承其他類,java用另一種機制解決單繼承的局限性,即多實現

2.3、對繼承體系的使用

(1)想要使用體系,應該先查閱父類,因為父類定義了該體系的共性功能,了解了父類的功能,就基本可以使用該體系的功能了

(2)在具體調用時,要創建子類的對象,因為有可能當父類是抽象類時父類不能創建對象,而且子類具備更豐富、更具體的功能實現

2.4繼承的特點

2.4.1覆蓋(重寫)

2.4.1.1如果子父類中的成員一致時,子類成員會覆蓋父類成員

2.4.1.2當子類繼承父類時,沿襲父類的功能到子類中,但子類對該功能的實現細節不一致,子類可以保留父類對該功能的定義,重寫功能的內容

2.4.1.3覆蓋與重載:重載只看參數列表,其他一致參數列表不一致為重載,而重寫子父類的參數必須要一致

2.4.2this與super

this表示當前對象的引用,super表示當前對象父類的引用

2.5子父類中的構造函數

2.5.1構造函數不能重寫

2.5.1.1構造函數第一行有一條隱式的語句super()/this()

2.5.1.2在對子類對象進行初始化時,父類構造函數也會運行,因為子類中的構造函數默認第一行有一條隱式的super()語句,這樣方便子類構造時先獲取到父類的共性屬性

2.5.1.3super()一定要定義在子類構造函數的第一行,當沒有默認的空參數構造函數,要手動指定

2.6、注意事項:

2.6.1千萬別為了獲取其他類中的功能而繼承,必須是類與類間有所屬關系才可以繼承。

2.6.2子類覆蓋父類時必須保證子類許可權大於等於父類,才可以覆蓋,否則編譯失敗

2.6.3子類靜態成員只能覆蓋父類靜態成員

2.7final關鍵字

2.7.1final關鍵字可以修飾類、函數和變數

2.7.2被final修飾的類不可以被繼承(繼承打破了封裝性)

2.7.3被final修飾的方法不可以被復寫

2.7.4被final修飾的變數只能被賦值一次,既可以修飾成員變數,也可以修飾

2.8Object類

2.8.1java中有一個特殊的類,Object類,它是所有對象的超類(根類),Object類中定義了所有對象的共性成員

2.8.2Object類中的方法

equals()比較兩個對象是否相同

toString()返回該對象的字元串表示形式

getClass()獲取該對象對應的位元組碼文件對象

hasCode()獲取該對象的哈希碼值

2.9類間的體系關系

繼承、聚集(聚合)、組合

2.9.1繼承:

指的是一個類繼承另外的一個類的功能,並增加它自己的新功能或改寫舊有功能的具體實現,繼承是類與類之間最常見的關系。

2.9.2聚合:

指的是整體與部分的關系。通常在定義一個整體類後,再去分析這個整體類的組成結構。從而找出一些組成類,該整體類和組成類之間就形成了聚合關系。例如足球隊中的足球隊員就是聚合關系。

2.9.3組合:

也表示類之間整體和部分的關系,但是組合關系中部分和整體具有統一的生存期。一旦整體對象不存在,部分對象也將不存在。部分對象與整體對象之間具有共生死的關系。例如人的各個身體器官之間的關系。

3、多態

3.1、多態的定義;某一類事物具備的多種表現形態(貓、狗和動物)

3.2、java中多態的表現形式

父類的引用指向自己的子類對象

父類的引用接收自己的子類對象

3.3、多態的前提

必須是類與類之間有關系,要麼繼承,要麼實現

子父類間的成員存在覆蓋

3.4、多態的好處與缺陷

好處是提高了程序的擴展性,缺陷是只能使用父類的引用訪問父類的方法,無法訪問子類的特有方法。

3.5、多態的應用

類型轉換

向上轉型,自然轉型

向下轉型,強制父類引用向下轉型

3.6、特點

(1)多態中成員函數的特點

編譯時看引用變數所屬的類中是否有方法

運行時看對象所屬類的方法

(2)多態中成員變數的特點

無論編譯或運行時都參看右邊

多態中靜態成員函數的特點

編譯或運行時都參看左邊

3.7、多態的擴展示例

資料庫操作(各種資料庫):定義資料庫的父類型,由哪類型的資料庫調用就由該子類實現其具體操作內容。

我有一個微信公眾號,每天都會分享一些Java相關的干貨文章,還有海量學習資源。
如果你喜歡我的分享,可以用微信搜索「Java團長」或者「javatuanzhang」關注。

⑥ java: 談談你對面向對象的理解

java萬事萬物皆對象(一種理念;只可意會,不可言傳!)。
對象是數據與只能處理這些數據的方法的封裝(一個原子單元),類是程序員提供給系統的一類對象相似的對象的描述(描述),程序開始運行之時,想一下程序中是不是未存在任何對象,就連對象的聲明(用代碼表示具體的對象)也沒有,單單就存在對象描述模板(即是:類),所以我們可以通過模板,叫系統new(構造)一個具體的對象來使用。
特別提醒一點:千萬要揣摩一下這句話(對象是數據與只能處理這些數據的方法的封裝)。
具體可以結合面向對象的四大特徵進行理解:封裝 繼承 多態 抽象

⑦ java中面向對象怎麼理解最好是自己的理解

林氏120燒傷燙傷救護中心為您解答:
面向對象是一種思想,是一種架構分析設計思想,在項目中比如要做個,「三國殺」的在線游戲,那我們首先就會先分析這個游戲裡面涉及到的實體,也稱對象。比如分析出如下對象:
A 英雄角色
a1 角色屬性 (技能、血量等)
B 游戲牌 (分 武器牌、殺閃牌、錦囊牌、葯)
C 游戲房間
D 房間玩家
d1 玩家身份 (主公、忠、反、間)

分析完,有這些對象後,整體的思路其實有了。下一步,我就要細化分析這些對象的關系,並設計,比如游戲牌的分析。游戲牌有很多種牌,所以就 把游戲牌抽象成一個 基類(父類),並在父類里封裝了所有牌共同的屬性,和 行為(方法),做完這步設計具體游戲牌對象的時候,就會用到繼承、重寫、重載等方法處理對象之間的關系。其他對象的分析類似。
個人總結,分析有哪些對象是基礎,處理各個對象之間的關系,就是設計架構。整個過程就是面向對象編程或稱面向對象設計。

⑧ java中 什麼是面向對象 怎麼理解能否舉例例子 通俗易懂說明,謝謝

Java的面向對象!打個比如!你現在手裡!有一部手機!這個手機就是面向對象!意思就是說!面向對象就是你看到的一切皆是對象!你得分析他有什麼!手機!有電池!有內存卡!可以打電話!可以發簡訊!可以上網!這就是對象!

⑨ Java面向對象的理解

通過你的描述根本看不明白你在說什麼
不一定老師說的就對,老師一般頭腦里有個「正確」做法,不一樣的都被看作「不好」做法。
面向對象的重要作用是封裝,一個類、方法一般只做一件事。如果你能做到對象內部管理其自身狀態和邏輯,對外只暴露簡單介面,那我覺得就算好的對象

閱讀全文

與對java面向對象的理解相關的資料

熱點內容
c編程演算法 瀏覽:827
堵車如何緩解壓力 瀏覽:15
喜鵲快貸app怎麼了 瀏覽:263
海龜編輯器積木編程怎麼安裝 瀏覽:185
程序員理發店生意怎麼樣 瀏覽:603
程序員羅技 瀏覽:180
軟考初級程序員課程2021下載 瀏覽:491
杭州程序員奶奶 瀏覽:880
不聽命令造成錯誤 瀏覽:981
kool系統源碼 瀏覽:610
流氓app在哪裡看 瀏覽:98
域名購買了怎麼指向伺服器 瀏覽:121
安卓手機如何讓照片顏色反轉 瀏覽:859
怎麼下載卓睿安手機版 瀏覽:514
h3crange命令 瀏覽:468
php前景和python 瀏覽:338
php壓縮圖片內存大小 瀏覽:495
在哪裡可以查看雲伺服器的信息 瀏覽:70
python讀取非txt文件 瀏覽:799
艾莫迅用什麼編程軟體好 瀏覽:227