首頁 Java java教程 怎麼理解java物件導向

怎麼理解java物件導向

May 29, 2019 pm 02:50 PM

怎麼理解java物件導向

如何理解Java物件導向?

#Java是一種物件導向的程式開發語言,準確的理解java的面向對象才能更快速掌握JAVA的程式設計想法與方法,本文為大家介紹java面向對象,幫助大家更能理解java。

1、什麼是物件?

首先要說明一點,物件不是java的,事實上他只是一種概念,一種用來解決問題的程序設計的思想方法。要理解對象就必須得和物件導向結合。在物件導向中把某一類事物所共有的屬性和行為抽象化之後就形成了一個類別。而類別的一個實際的例子就叫做物件。所以從上可以看出類別和物件之間存在著這樣一種關係:類別是具有共同的屬性名稱和行為的一組物件的抽象,而物件則是一個類別的真實的例子。

類別是現實世界或思維世界中的實體在電腦中的反映,它將資料以及這些資料上的操作封裝在一起。

類別描述了具有相同特性(資料元素、狀態變數)和行為(對資料元素、狀態變數的運算)的物件集合,如果我需要某個具有一定功能的工具,那麼我可自訂這個類,裡面有我需要的數據,還有讓這個類別提供的功能。

物件是具有類別類型的變數。類別和物件是物件導向程式設計技術中的基本的概念。類別是物件的抽象,而物件是類別的具體實例。類別是抽象的,不佔用內存,而物件是具體的,佔用儲存空間。類別是用於創建物件的藍圖,它是一個定義包括在特定類型的物件中的方法和變數的軟體模板。

JAVA是一種物件導向的程式設計語言,物件是由類別抽像出來的,所有的問題都是透過物件來處理,物件可以操作類別的屬性和方法來解決問題,所以了解對象的產生、操作和消亡是十分必要的。物件可以認為是在一類事物中抽像出某一個特例,透過這個特例來處理這類事物出現的問題,在Java語言中透過new運算元來建立物件。

2、物件和物件參考

如下表達式:A a1 = new A;它代表A是類,a1是引用,a1不是對象,new A才是對象,a1引用指向new A這個對象。

在JAVA裡,「=」不能被看成是一個賦值語句,它不是在把一個對象賦給另外一個對象,它的執行過程實質上是將右邊對象的地址傳給了左邊的引用,使得左邊的引用指向了右邊的物件。 JAVA表面上看起來沒有指針,但它的引用其實質就是一個指針,引用裡面存放的並不是對象,而是該對象的地址,使得該引用指向了對象。在JAVA裡,「=」語句不應該被翻譯成賦值語句,因為它所執行的確實不是一個賦值的過程,而是一個傳遞地址的過程,被譯成賦值語句會造成很多誤解,譯得不準確。

再如:A a2;它代表A是類,a2是引用,a2不是對象,a2所指向的對象為空null;

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

綜上所述,可以簡單的記為,在初始化時,「=」語句左邊的是引用,右邊new出來的是物件。

在後面的左右都是引用的「=」語句時,左右的引用同時指向了右邊引用所指向的物件。再所謂實例,其實就是物件的同義詞。

3、Java繼承性分析

繼承是物件導向顯著的特性。繼承是從已有的類別中衍生出新的類,新的類別能吸收已有類別的資料屬性和行為,並能擴展新的能力。 Java繼承是使用已存在的類別的定義作為基礎建立新類別的技術,新類別的定義可以增加新的資料或新的功能,也可以用父類別的功能,但不能選擇性地繼承父類別。這種技術使得復用先前的程式碼非常容易,能夠大幅縮短開發週期,並降低開發費用。

繼承是java物件導向程式設計技術的一塊基石,因為它允許建立分等級層次的類別。繼承可以理解為一個物件從另一個物件取得屬性的過程。如果類A是類B的父類,而類B是類C的父類,我們也稱C是A的子類,類C是從類A繼承而來的。在Java中,類別的繼承是單一繼承,也就是說,一個子類別只能擁有一個父類別。繼承中常用的兩個關鍵字是extends(IS-A,是一個什麼東西)和implements(Has-A,有一個什麼功能)。這兩個關鍵字的使用決定了一個物件和另一個物件是否是IS-A(是一個)關係。



以上是怎麼理解java物件導向的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

公司安全軟件導致應用無法運行?如何排查和解決? 公司安全軟件導致應用無法運行?如何排查和解決? Apr 19, 2025 pm 04:51 PM

公司安全軟件導致部分應用無法正常運行的排查與解決方法許多公司為了保障內部網絡安全,會部署安全軟件。 ...

如何優雅地獲取實體類變量名構建數據庫查詢條件? 如何優雅地獲取實體類變量名構建數據庫查詢條件? Apr 19, 2025 pm 11:42 PM

在使用MyBatis-Plus或其他ORM框架進行數據庫操作時,經常需要根據實體類的屬性名構造查詢條件。如果每次都手動...

如何使用MapStruct簡化系統對接中的字段映射問題? 如何使用MapStruct簡化系統對接中的字段映射問題? Apr 19, 2025 pm 06:21 PM

系統對接中的字段映射處理在進行系統對接時,常常會遇到一個棘手的問題:如何將A系統的接口字段有效地映�...

如何將姓名轉換為數字以實現排序並保持群組中的一致性? 如何將姓名轉換為數字以實現排序並保持群組中的一致性? Apr 19, 2025 pm 11:30 PM

將姓名轉換為數字以實現排序的解決方案在許多應用場景中,用戶可能需要在群組中進行排序,尤其是在一個用...

IntelliJ IDEA是如何在不輸出日誌的情況下識別Spring Boot項目的端口號的? IntelliJ IDEA是如何在不輸出日誌的情況下識別Spring Boot項目的端口號的? Apr 19, 2025 pm 11:45 PM

在使用IntelliJIDEAUltimate版本啟動Spring...

Java對像如何安全地轉換為數組? Java對像如何安全地轉換為數組? Apr 19, 2025 pm 11:33 PM

Java對象與數組的轉換:深入探討強制類型轉換的風險與正確方法很多Java初學者會遇到將一個對象轉換成數組的�...

電商平台SKU和SPU數據庫設計:如何兼顧用戶自定義屬性和無屬性商品? 電商平台SKU和SPU數據庫設計:如何兼顧用戶自定義屬性和無屬性商品? Apr 19, 2025 pm 11:27 PM

電商平台SKU和SPU表設計詳解本文將探討電商平台中SKU和SPU的數據庫設計問題,特別是如何處理用戶自定義銷售屬...

使用TKMyBatis進行數據庫查詢時,如何優雅地獲取實體類變量名構建查詢條件? 使用TKMyBatis進行數據庫查詢時,如何優雅地獲取實體類變量名構建查詢條件? Apr 19, 2025 pm 09:51 PM

在使用TKMyBatis進行數據庫查詢時,如何優雅地獲取實體類變量名以構建查詢條件,是一個常見的難題。本文將針...

See all articles