• 招生咨詢熱線:4008-569-579 
  • 手機(jī)版
    用手機(jī)掃描二維碼直達(dá)商品手機(jī)版
招生咨詢熱線
4008-569-579
機(jī)構(gòu)主頁(yè) > 機(jī)構(gòu)新聞 > 如何理解Java面向?qū)ο?/div>
機(jī)構(gòu)主頁(yè) > 機(jī)構(gòu)新聞>如何理解Java面向?qū)ο?/div>

如何理解Java面向?qū)ο?/h1>

來(lái)源:北京達(dá)內(nèi)教育        時(shí)間:2023-05-25        熱度:42℃        返回列表

Java是一種面向?qū)ο蟮某绦蜷_(kāi)發(fā)語(yǔ)言,準(zhǔn)確的理解java的面向?qū)ο蟛拍芨酶斓卣莆認(rèn)AVA的編程思想和方法,本文達(dá)內(nèi)java培訓(xùn)(java.tedu.cn)專家為大家介紹java面向?qū)ο?,幫助大家更好的理解java。

1、什么是對(duì)象?

首先要說(shuō)明一點(diǎn),對(duì)象不是java的,事實(shí)上他只是一種概念,一種用于解決問(wèn)題的程序設(shè)計(jì)的思想方法。要理解對(duì)象就必須得要和面向?qū)ο蠼Y(jié)合起來(lái)。在面向?qū)ο笾邪涯骋活?lèi)事物所共有的屬性和行為抽象出來(lái)之后就形成了一個(gè)類(lèi)。而類(lèi)的一個(gè)實(shí)際的例子就叫做對(duì)象。所以從上可以看出類(lèi)和對(duì)象之間存在著這樣一種關(guān)系:類(lèi)是具有共同的屬性名稱和行為的一組對(duì)象的抽象,而對(duì)象則是一個(gè)類(lèi)的真實(shí)的例子。

類(lèi)是現(xiàn)實(shí)世界或思維世界中的實(shí)體在計(jì)算機(jī)中的反映,它將數(shù)據(jù)以及這些數(shù)據(jù)上的操作封裝在一起。

類(lèi)描述了具有相同特性(數(shù)據(jù)元素、狀態(tài)變量)和行為(對(duì)數(shù)據(jù)元素、狀態(tài)變量的操作)的對(duì)象集合,如果我需要某個(gè)具有一定功能的工具,那么我可自定義這個(gè)類(lèi),里面有我需要的數(shù)據(jù),還有讓這個(gè)類(lèi)提供的功能。

對(duì)象是具有類(lèi)類(lèi)型的變量。類(lèi)和對(duì)象是面向?qū)ο缶幊碳夹g(shù)中的最基本的概念。類(lèi)是對(duì)象的抽象,而對(duì)象是類(lèi)的具體實(shí)例。類(lèi)是抽象的,不占用內(nèi)存,而對(duì)象是具體的,占用存儲(chǔ)空間。類(lèi)是用于創(chuàng)建對(duì)象的藍(lán)圖,它是一個(gè)定義包括在特定類(lèi)型的對(duì)象中的方法和變量的軟件模板。

JAVA是一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,對(duì)象是由類(lèi)抽象出來(lái)的,所有的問(wèn)題都是通過(guò)對(duì)象來(lái)處理,對(duì)象可以操作類(lèi)的屬性和方法來(lái)解決問(wèn)題,所以了解對(duì)象的產(chǎn)生、操作和消亡是十分必要的。對(duì)象可以認(rèn)為是在一類(lèi)事物中抽象出某一個(gè)特例,通過(guò)這個(gè)特例來(lái)處理這類(lèi)事物出現(xiàn)的問(wèn)題,在Java語(yǔ)言中通過(guò)new操作符來(lái)創(chuàng)建對(duì)象。

2、對(duì)象和對(duì)象引用

如下表達(dá)式:A a1 = new A;它代表A是類(lèi),a1是引用,a1不是對(duì)象,new A才是對(duì)象,a1引用指向new A這個(gè)對(duì)象。

在JAVA里,“=”不能被看成是一個(gè)賦值語(yǔ)句,它不是在把一個(gè)對(duì)象賦給另外一個(gè) 對(duì)象,它的執(zhí)行過(guò)程實(shí)質(zhì)上是將右邊對(duì)象的地址傳給了左邊的引用,使得左邊的引用指向了右邊的對(duì)象。JAVA表面上看起來(lái)沒(méi)有指針,但它的引用其實(shí)質(zhì)就是一 個(gè)指針,引用里面存放的并不是對(duì)象,而是該對(duì)象的地址,使得該引用指向了對(duì)象。在JAVA里,“=”語(yǔ)句不應(yīng)該被翻譯成賦值語(yǔ)句,因?yàn)樗鶊?zhí)行的確實(shí)不是 一個(gè)賦值的過(guò)程,而是一個(gè)傳地址的過(guò)程,被譯成賦值語(yǔ)句會(huì)造成很多誤解,譯得不準(zhǔn)確。

再如:A a2;它代表A是類(lèi),a2是引用,a2不是對(duì)象,a2所指向的對(duì)象為空null;

再如:a2 = a1;它代表,a2是引用,a1也是引用,a1所指向的對(duì)象的地址傳給了a2(傳址),使得a2和a1指向了同一對(duì)象。

綜上所述,可以簡(jiǎn)單的記為,在初始化時(shí),“=”語(yǔ)句左邊的是引用,右邊new出來(lái)的是對(duì)象。

在后面的左右都是引用的“=”語(yǔ)句時(shí),左右的引用同時(shí)指向了右邊引用所指向的對(duì)象。再所謂實(shí)例,其實(shí)就是對(duì)象的同義詞。

3、Java繼承性分析

繼承是面向?qū)ο笞铒@著的一個(gè)特性。繼承是從已有的類(lèi)中派生出新的類(lèi),新的類(lèi)能吸收已有類(lèi)的數(shù)據(jù)屬性和行為,并能擴(kuò)展新的能力。Java繼承是使用已存在的類(lèi)的定義作為基礎(chǔ)建立新類(lèi)的技術(shù),新類(lèi)的定義可以增加新的數(shù)據(jù)或新的功能,也可以用父類(lèi)的功能,但不能選擇性地繼承父類(lèi)。這種技術(shù)使得復(fù)用以前的代碼非常容易,能夠大大縮短開(kāi)發(fā)周期,降低開(kāi)發(fā)費(fèi)用。

繼承是java面向?qū)ο缶幊碳夹g(shù)的一塊基石,因?yàn)樗试S創(chuàng)建分等級(jí)層次的類(lèi)。繼承可以理解為一個(gè)對(duì)象從另一個(gè)對(duì)象獲取屬性的過(guò)程。如果類(lèi)A是類(lèi)B的父類(lèi),而類(lèi)B是類(lèi)C的父類(lèi),我們也稱C是A的子類(lèi),類(lèi)C是從類(lèi)A繼承而來(lái)的。在Java中,類(lèi)的繼承是單一繼承,也就是說(shuō),一個(gè)子類(lèi)只能擁有一個(gè)父類(lèi)。繼承中最常使用的兩個(gè)關(guān)鍵字是extends(IS-A,是一個(gè)什么東西)和implements(Has-A,有一個(gè)什么功能)。這兩個(gè)關(guān)鍵字的使用決定了一個(gè)對(duì)象和另一個(gè)對(duì)象是否是IS-A(是一個(gè))關(guān)系。

達(dá)內(nèi)java培訓(xùn)(java.tedu.cn)專家提醒大家,通過(guò)使用這兩個(gè)關(guān)鍵字,我們能實(shí)現(xiàn)一個(gè)對(duì)象獲取另一個(gè)對(duì)象的屬性。所有Java的類(lèi)均是由java.lang.Object類(lèi)繼承而來(lái)的,所以O(shè)bject是所有類(lèi)的祖先類(lèi),而除了Object外,所有類(lèi)必須有一個(gè)父類(lèi)。通過(guò)extends關(guān)鍵字可以申明一個(gè)類(lèi)是繼承另外一個(gè)類(lèi)而來(lái)的,通過(guò)使用關(guān)鍵字extends,子類(lèi)可以繼承父類(lèi)所有的方法和屬性,但是無(wú)法使用private(私有)的方法和屬性。我們通過(guò)使用instanceof操作符,能夠確定子類(lèi)IS-A父類(lèi)。

電話咨詢

電話咨詢

咨詢電話:
4008-569-579
回到頂部

回到頂部