中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java是不是純面向對象語言

發布時間:2021-08-30 18:05:34 來源:億速云 閱讀:175 作者:chen 欄目:編程語言

本篇內容介紹了“Java是不是純面向對象語言”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

  在我剛開始學習Java的前面幾年,我從書本里知道了Java是遵循“面向對象編程范式(ObjectOrientedProgrammingparadigm)”的。在Java世界內一切都是對象,甚至包括字符串(String)這些都是對象(在C語言中,字符串是字符數組),那時候,我認為Java是一種面向對象的語言。

  后來,我在網上陸續看到不少開發者說“Java實際上不是純粹的面向對象,因為并不是所有的東西在Java世界都是一個對象”。他們很多的論點都可以概括為以下兩點:

所有的靜態內容不屬于任何對象,這些是非對象的東西。

  所有基本類型(char,boolean,byte,short,int,long,float,double)都不是對象,因為我們不能做類似對象的所具有的操作(例如:使用“.”來訪問對象的屬性和方法)。

  在那時,由于個人知識經驗儲備有限,我又很容地相信上面的論點,并且也開始認為“Java不是純粹的面向對象編程語言”。

  到了更后來,我發現JVM在創建對象的時候,實際上會創建兩個對象:

  一個是實例對象。另一個是Class對象。該Class對象在JVM內僅僅會裝載一次,該類的靜態方法和靜態屬性也一同裝載,JVM使用該Class對象來創建具體的實例對象(如上面的對象)。

  一個是實例對象emp;另一個則是Class對象,我們可以通過Employee.class引用到它;這個Class對象擁有所有的這個類定義的靜態變量和靜態方法。同時,如果我們訪問通過emp對象來訪問靜態內容,會發現它其實指向的對象就是Employee.class。

  這也揭開了另一個迷:為什么靜態內容在一個對象中(不管是emp還是emp2)改變了,在另一個對象中也同時改變,因為這兩個對象改變的都是在Employee.class同一個對象里面的內容。

  現在,上面說到的第一個論點我們要取消了。因為,靜態內容確實被證實屬于一個對象。

  但是我們還要確認第二個論點:正如早前提到的,原始類型在Java中不是對象,它們無法做類似對象的操作。為了解決這個問題,Java官方為每一個原始類型推出了對應的包裝類(比如:Integer對應int,Long對應long,Character對應char),所以,其實現在我們可以為原始類型創建一個包裝對象,同時對它們做對象相關的操作。并且,由于自動拆裝箱,我們可以把一個原始類型值賦值給它對應的包裝類的引用。但是我們仍然不能對這些原始類型做對象的操作,我們需要創建對應包裝類的對象。

  所以總結一下是:在JVM內部,原始類型就是被當作對象來處理的。但是我們開發者直接把“原始類型”當作對象使用,開發者應該使用對應的包裝來。

“Java是不是純面向對象語言”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

涟水县| 罗定市| 阜宁县| 旺苍县| 宣恩县| 呼玛县| 清远市| 昭苏县| 若尔盖县| 惠安县| 镇坪县| 台州市| 剑河县| 镇江市| 临清市| 类乌齐县| 柯坪县| 枣强县| 金坛市| 将乐县| 毕节市| 云浮市| 攀枝花市| 江孜县| 普安县| 比如县| 万山特区| 屯昌县| 龙里县| 肇庆市| 扎兰屯市| 城市| 浦县| 鄂伦春自治旗| 叶城县| 进贤县| 武山县| 泉州市| 靖西县| 宜川县| 新巴尔虎右旗|