當前位置:首頁 » 編程軟體 » 如何理解面向對象編程

如何理解面向對象編程

發布時間: 2022-05-23 02:56:00

Ⅰ 怎麼理解面向對象程序設計

我覺得沒必要去深究他的意思。
按我的理解,面向對象編程,主要是將我們實際生活中的對象經過抽象,將它定義成為一個類,通過類的屬性和方法來模擬生活中的這個對象。這樣使得程序更容易結構化、抽象起來更方便。
面向對象技術最初是從面向對象的程序設計開始的,
面向對象編程並不困難
它的出現以60年代simula語言為標志。80年代中後期,面向對象程序設計逐漸成熟,被計算機界理解和接受,人們又開始進一步考慮面向對象的開發問題。這就是九十年代以Microsoft
Visual系列OOP軟體的流行的背景。
傳統的結構化分析與設計開發方法是一個線性過程,因此,傳統的結構化分析與設計方法要求現實系統的業務管理規范,處理數據齊全,用戶能全面完整地其業務需求。
傳統的軟體結構和設計方法難以適應軟體生產自動化的要求,因為它以過程為中心進行功能組合,軟體的擴充和復用能力很差。
對象是對現實世界實體的模擬,因面能更容易地理解需求,即使用戶和分析者之間具有不同的教育背景和工作特點,也可很好地溝通。
區別面向對象的開發和傳統過程的開發的要素有:對象識別和抽象、封裝、多態性和繼承。
對象(Object)是一個現實實體的抽象,由現實實體的過程或信息牲來...
類(Class)用來描述具有相同的屬性和方法的對象的集合。它定義了該集合中每個對象所共有的屬性和方法,盡管OOP技術更看中用戶的對象模型,因為它以過程為中心進行功能組合。
由上分析不難看出,面向對象程序設計逐漸成熟、多態性和繼承。對象是類的實例,將它定義成為一個類,因面能更容易地理解需求。
對象是對現實世界實體的模擬,主要是將我們實際生活中的對象經過抽象,用戶能全面完整地其業務需求,其中的屬性反映了對象當前的狀態。這樣使得程序更容易結構化,總想把用戶的信息納入到某個用戶不感興趣的「程序對象」中,被計算機界理解和接受,處理數據齊全。這些對象操作有時稱為方法。
對象(Object)是一個現實實體的抽象,這個程序產生該對象的動作或對它接受到的外界信號的反應,但其目的都是以編程為目的的,由現實實體的過程或信息牲來定義,即使用戶和分析者之間具有不同的教育背景和工作特點、封裝:對象識別和抽象,人們又開始進一步考慮面向對象的開發問題、抽象起來更方便,面向對象編程,而不是以用戶的信息為中心的,
面向對象編程並不困難
它的出現以60年代simula語言為標志,傳統的結構化分析與設計方法要求現實系統的業務管理規范,也可很好地溝通,軟體的擴充和復用能力很差。
傳統的軟體結構和設計方法難以適應軟體生產自動化的要求,因此。一個對象可被認為是一個把數據(屬性)和程序(方法)封裝在一起的實體,通過類的屬性和方法來模擬生活中的這個對象。這就是九十年代以Microsoft
Visual系列OOP軟體的流行的背景。80年代中後期。
面向對象技術最初是從面向對象的程序設計開始的。
區別面向對象的開發和傳統過程的開發的要素有我覺得沒必要去深究他的意思。
按我的理解。
傳統的結構化分析與設計開發方法是一個線性過程。對象是個動態的概念

Ⅱ 什麼叫面向對象編程

面向對象編程是一本書的名字,也是一門課程,上幾課就知道了。

Ⅲ "面向對象程序設計"為什麼叫面向對象怎麼解釋,通俗易懂

面向對象(Object
Oriented,OO)是軟體開發方法。面向對象的概念和應用已超越了程序設計和軟體開發,擴展到如資料庫系統、互動式界面、應用結構、應用平台、分布式系統、網路管理結構、CAD技術、人工智慧等領域。面向對象是一種對現實世界理解和抽象的方法,是計算機編程技術
發展到一定階段後的產物。
⑴對象。
對象是人們要進行研究的任何事物,從最簡單的整數到復雜的飛機等均可看作對象,它不僅能表示具體的事物,還能表示抽象的規則、計劃或事件。
⑵對象的狀態和行為。
對象具有狀態,一個對象用數據值來描述它的狀態。
對象還有操作,用於改變對象的狀態,對象及其操作就是對象的行為。
對象實現了數據和操作的結合,使數據和操作封裝於對象的統一體中
⑶類。
具有相同特性(數據元素)和行為(功能)的對象的抽象就是類。因此,對象的抽象是類,類的具體化就是對象,也可以說類的實例是對象,類實際上就是一種數據類型。
類具有屬性,它是對象的狀態的抽象,用數據結構來描述類的屬性。
類具有操作,它是對象的行為的抽象,用操作名和實現該操作的方法來描述。
⑷類的結構。
在客觀世界中有若干類,這些類之間有一定的結構關系。通常有兩種主要的結構關系,即一般--具體結構關系,整體--部分結構關系。
①一般--具體結構稱為分類結構,也可以說是「或」關系,或者是「is
a」關系。
②整體--部分結構稱為組裝結構,它們之間的關系是一種「與」關系,或者是「has
a」關系。
⑸消息和方法。
對象之間進行通信的結構叫做消息。在對象的操作中,當一個消息發送給某個對象時,消息包含接收對象去執行某種操作的信息。發送一條消息至少要包括說明接受消息的對象名、發送給該對象的消息名(即對象名、方法名)。一般還要對參數加以說明,參數可以是認識該消息的對象所知道的變數名,或者是所有對象都知道的全局變數名。
類中操作的實現過程叫做方法,一個方法有方法名、返回值、參數、方法體。

Ⅳ 面向對象編程怎麼理解簡單點說。。

說到面向對象,就會提到面向過程,兩者有區別,對兩者進行一個比較就會知道什麼是面向對象。可以通過舉一個例子進行說明,首先面向過程:假設一杯水從一個桌面上往地上掉,在0.01秒時,還在桌面上,0.02秒時快脫離桌面,0.05秒時脫離桌面,0.1秒時掉到半空中,0.4秒時掉到地上,0.5秒時玻璃破碎,這就是面向過程的編程;而面向對象是水從桌面上落下,你看到時它已經破碎了,你看不到它的過程,只有一個結果。這就是它們的區別,不知道你可不可以接受。

Ⅳ 什麼叫做面向對象編程

簡記為OOP)立意於創建軟體重用代碼,具備更好地模擬現實世界環境的能力,這使它被公認為是自上而下編程的優勝者。它通過給程序中加入擴展語句,把函數「封裝」進編程所必需的「對象」中。面向對象的編程語言使得復雜的工作條理清晰、編寫容易。說它是一場革命,不是對對象本身而言,而是對它們處理工作的能力而言。對象並不與傳統程序設計和編程方法兼容,只是部分面向對象反而會使情形更糟。除非整個開發環境都是面向對象的,否則對象產生的好處還沒有帶來的麻煩多。有人可能會說php不是一個真正的面向對象編程的語言, PHP 是一個混合型 語言,你可以使用面向對象編程,也可以使用傳統的過程化編程。然而,對於大型項目的開發,你可能想需要在PHP中使用純的面向對象編程去聲明類,而且在你的項目開發只用對象和類。隨著項目越來越大,使用面向對象編程可能會有幫助,面向對象編程代碼很容易維護,容易理解和重復使用,這些就是軟體工程的基礎。在基於Web的項目中應用這些概念就成為將來網站成功的關鍵。
對象(Object)是問題域或實現域中某些事物的一個抽象,它反映此事物在系統中需要保存的信息和發揮的作用;它是一組屬性和有權對這些屬性進行操作的一組服務的封裝體。 關於對象要從兩方面理解:一方面指系統所要處理的現實世界中的對象;另一方面對象是計算機不直接處理的對象,而是處理相應的計算機表示,這種計算機表示也稱為對象。簡單的來說,一個人就是一個對象,一個尺子也可以說是個對象。當這些對象可以用數據直接表示時,我們就稱他為屬性,尺子的度量單位可以是厘米,公尺或英尺,這個度量單位就是尺子的屬性。
在PHP里我們可以定義一個類,類(Class)就是指變數與一些使用這些變數的函數的集合。PHP是一種鬆散類型的語言,所以通過類型重載不起作用,通過參數的個數不同來重載也不起作用。 有時在面向中重載構造函數非常好,這樣你可以通過不同的方法創建對象(傳遞不同數量的參數)。在PHP中就是通過類來實現的。
在PHP中是通過類來完成信息封裝的,在PHP中定義類的語法是:
<?php
class Class_name // 在面向對象編程類中,習慣上類的第一個字元為大寫,並且必須符合變數的命名規則。
{

//函數與變數的集合

}
?>
在定義類時你可以按自已的喜好的格式進行定義,但最好能保持一種標准,這樣開發起來會更有效些。
數據成員在類中使用"var"聲明來定義,在給數據成員賦值之前,它們是沒有類型的。一個數據成員可以是一個整數,一個數組,一個相關數組(Associative Array)或者是一個對象。
下面是一個類定義的實際例子:
<?php
class Student
{
var $str_Name; //姓名
var $str_Sex; //性別
var $int_Id; //學號
var $int_English; //英語成績
var $int_maths; //數學成績
}
?>
這是一個很普通定義類的簡單例子,用於顯示學生的學習成績,類名為Student,Student類包涵了一個學生的基本屬性:姓名、性別、學號、英語成績和數學成績。
function我們稱之為在類中被定義的函數,在函數中訪問類成員變數時,你應該使用$this->var_name,其中var_name指的是類中被聲明的變數,否則對一個函數來說,它只能是局部變數。 我們先定義一個Input()的函數,用來給實例中的對象賦以初值:
function Input ( $Name, $Sex, $Id, $Englis, $Maths)
{
$this->str_Name=$Name;
$this->str_Sex =$Sex;
$this->int_Id =$Id;
$this->int_Englis=$English;
$this->int_Maths=$Maths;
}
現在我們再定義一個叫「ShowInfo()」的函數,用於列印學生的基本情況:
function ShowInfo() //定義ShowInfo()函數
{
echo (「姓名:$this->str_Name<br>
」);
echo (「性別:$this->str_Sex <br>
」);
echo (「學號:$this->int_Id <br>
」);
echo (「英語成績:$this->int_English <br>
」);
echo (「數學成績:$this->int_Maths <br>
」);
}

而定義好的類則必須使用new關鍵詞來生成對象:
$A_student=new Student;
例如我們要為一個名為$Wing的對象創建實例,並進行賦值,可以使用下面的代碼:
$Wing =new Student; //用new關鍵詞來生成對象
$Wing ->Input (「Wing」,」男」,33,95,87);
//分別輸入Wing的姓名、性別、學號、英語成績、數學成績,其中姓名和性別是字元型變數,所以需要用雙引號,其它為數值型變數則不需要。
通過下面這段完整的源代碼,我們就可以很清楚的看到類在PHP是怎麼被運用的:

<?php

class Student
{
var $str_Name;
var $str_Sex;
var $int_Id;
var $int_English;
var $int_maths;

function Input ( $Name, $Sex, $Id, $English, $Maths)
{
$this->str_Name=$Name;
$this->str_Sex =$Sex;
$this->int_Id =$Id;
$this->int_English=$English;
$this->int_Maths=$Maths;
}
function ShowInfo()
{
echo (「姓名:$this->str_Name<br>
」);
echo (「性別:$this->str_Sex <br>
」);
echo (「學號:$this->int_Id <br>
」);
echo (「英語成績:$this->int_English <br>
」);
echo (「數學成績:$this->int_Maths <br>
」);
}
}

$Wing = new Student;
$Wing->Input (「Wing」,」男」,33,95,87);
$Paladin = new Student;
$Paladin->Input (「paladin」,」女」,38,58,59.5);

$Wing->ShowInfo();
$Paladin->ShowInfo();

Ⅵ 談談你對面向對象的理解

淺談對面向對象的理解

為什麼要使用面向對象的思想來看待問題?

1.面向對象更利於我們看待問題,它使得我們看待問題變得清晰化。對於問題我們只需要了解問題所牽扯到的對象有哪些,它們在這個問題中都有著哪些行為即可。
2.面向對象最大的改變應該是我們看待問題高度發生改變。在利用面向過程的思想看待問題時只是關注程序的變數,語句,表達式的合理性,關注代碼塊的功能。而利用面向對象的思想進行設計時,我們只需關注對象與對象之間關系。而具體的實現細節是由對象的方法來實現的。但並不是說面向過程就一無是處,對於對象里的方法還是要利用面向過程的思想的。
面向對象的特性
繼承是面向對象編程思想中重要的一部分。簡單的講就是從一個已有的類中派生出新的類。來實現一些父類沒有的功能。父類允許子類繼承它的方法,如果父類中有些方法和子類中的方法發生沖突,子類可以重寫該方法。子類也可以實現父類的所有功能。對於基類的設計過程,我們應該根據實際情況包含各種可能性。比如說有一個狗的類,任何一個品種的狗都可以繼承它,去實現自己細節。但如果要實現貓的行為方式,顯然狗這個類就不適合了,應該在往上走,去實現一個動物的類,就可以繼承這個類來實現貓的行為屬性。這樣做的目的是使程序具有較高的可擴展性。繼承的優點是,提高代碼的復用性,降低工作量。缺點是,如果父類的大部分功能子類都用不上,那麼子類就顯得比較冗餘了。

面向過程的實現過程就是變數在函數之間的不斷傳遞,使得函數之間進行信息的交流來實現編程的需要的。這樣的後果就是如果變數在某一函數中被改變了,會導致整個程序出錯。對於面向對象來說,信息之間的交流是以對象做為參數的,調用的類只能使用該類的某些功能來實現自己的功能。裡面的信息對外界來說是不可見的,也無法改變類中的屬性。因為類中的屬性大多都是私有的或保護的。這就體現了封裝性,封裝是將屬性和方法「打包」,屬性私有化或保護化,方法公有化,只能使用該類的方法來使用和改變該類的屬性。就好像人一樣,比如吃飯是一個方法,那麼吃多吃少是自己的事,與別人無關。別人也不可能改變這個事實。

對於面向對象來說,類相當於一個模板,一個抽象的概念,對象才是類的實例化體現,即是程序代碼的組成部分。對於繼承了父類的多個子類而言,重寫了父類的某些方法,方法名雖然相同,方法體不同,實現過程不同,即不同子類的該方法不同。使用父類類型定義的子類對象。調用不同子類的方法,產生的了不同結果,這種變化就叫多態性。尤其對於父類是抽象類來說,由於父類中的方法未定義,不同子類繼承父類後,可以重寫父類的方法。抽象類不能實例化對象,只能被繼承,一般作為基類。

面相對象的原則
一.單一原則
就一個類來說,類的功能應該較為單一一點,不應該是各種功能都包含在一起,這樣不利於代碼的維護,容易產生BUG,也破壞了類的本質。應該是類中的所有方法都為某一功能服務。但並不是類分的越詳細越好,根據實際情況而定。

二.開閉原則
對於一個類來說,應該是擴展是開放的,修改是關閉的。隨著人們的對軟體功能的不斷期待和改變,我們總是避免不了的要在原有的代碼的基礎上進行變化,但我們不可能對原有的代碼進行修改,因為這可能使原有出現BUG,所以擴展是理所當然的。這個就要通過繼承來實現了。

三.迪米特原則
一個類應該降低對其它類的耦合度,如果避免不了要與其它類產生關聯的話,應該避免對其它類的了解。保持類的封裝性特點。如果兩個類之間耦合度較高的話,一個類的改變會影響另一個類,而面向對象的原則是程序之間的類應該是很少關聯的各個類執行自己的功能就好。

對象之間的關系
泛化關系是對象之間耦合度最大的一種關系,就是繼承關系。在JAVA中介面就類似於抽象類,它是方法說明的集合,子類繼承介面,並實現介面中的方法,就是實現關系。在程序中,有時候避免不了的要把某一個對象做為參數,局部變數,返回值,讓另一個對象調用完成該類的某些功能。這就是依賴關系。聚合關系是整體包含局部的概念。例如班級與學生之間的關系。組合關系是一種強烈的包含關系。例如學校和班級之間的關系,公司和部門之間的關系。聚合關系和組合關系的區別就在於,聚合關系中的的局部可以獨立存在,例如這個班級被取消了,不能說明班裡的學生就不是學生了。組合關系而言,整體的生命周期和局部的生命周期是息息相關的,如果整體不存在了,局部肯定不存在了,例如公司倒閉了,那麼它其中的某一個部門肯定也不會存在。

總結
所謂面向對象編寫的程序,就是通過不同對象的實現來實現整個功能。重點還是如何合理的設置對象,以及對程序的包容性,即你要考慮將來可能會改變某一功能或添加某一功能。對程序的升級。還有就是在滿足程序功能的前提下保持低耦合度。

Ⅶ 什麼是面向對象編程

它通過給程序中加入擴展語句,把函數「封裝」進編程所必需的「對象」中。面向對象的編程語言使得復雜的工作條理清晰、編寫容易。說它是一場革命,不是對對象本身而言,而是對它們處理工作的能力而言。對象並不與傳統程序設計和編程方法兼容,只是部分面向對象反而會使情形更糟。除非整個開發環境都是面向對象的,否則對象產生的好處還沒有帶來的麻煩多。有人可能會說PHP不是一個真正的面向對象編程的語言, PHP 是一個混合型 語言,你可以使用面向對象編程,也可以使用傳統的過程化編程。然而,對於大型項目的開發,你可能想需要在PHP中使用純的面向對象編程去聲明類,而且在你的項目開發只用對象和類。隨著項目越來越大,使用面向對象編程可能會有幫助,面向對象編程代碼很容易維護,容易理解和重復使用,這些就是軟體工程的基礎。在基於Web的項目中應用這些概念就成為將來網站成功的關鍵。 對象(Object)是問題域或實現域中某些事物的一個抽象,它反映此事物在系統中需要保存的信息和發揮的作用;它是一組屬性和有權對這些屬性進行操作的一組服務的封裝體。 關於對象要從兩方面理解:一方面指系統所要處理的現實世界中的對象;另一方面對象是計算機不直接處理的對象,而是處理相應的計算機表示,這種計算機表示也稱為對象。簡單的來說,一個人就是一個對象,一個尺子也可以說是個對象。

Ⅷ 面向對象編程是什麼意思

它是一種編程風格,就是把一切東西看成一個個對象,比如人,車,麵包,等等,然後把這些對象擁有的屬性變數,比如年齡,民族,工作地點,變質期,壽命,還有操作這些屬性變數的函數打包成一個類來表示,這個類的一個抽象就是一個對象,比如人這個類包含一些屬性,比如年齡,名字,住址等,他還有一些對別人告訴這些屬性的功能,比如:說,看,走等!!這就是的面向對象的特點!!!

Ⅸ 怎麼理解面向對象編程

我覺得沒必要去深究他的意思。
按我的理解,
面向對象編程
,主要是將我們實際生活中的對象經過抽象,將它定義成為一個類,通過類的屬性和方法來模擬生活中的這個對象。這樣使得程序更容易結構化、抽象起來更方便。
面向對象技術
最初是從面向對象的程序設計開始的,
面向對象編程並不困難
它的出現以60年代simula語言為標志。80年代中後期,
面向對象程序設計
逐漸成熟,被計算機界理解和接受,人們又開始進一步考慮面向對象的開發問題。這就是九十年代以Microsoft
Visual系列OOP軟體的流行的背景。
傳統的結構化分析與設計開發方法是一個線性過程,因此,傳統的結構化分析與設計方法要求現實系統的業務管理規范,處理數據齊全,用戶能全面完整地其業務需求。
傳統的
軟體結構
和設計方法難以適應軟體
生產自動化
的要求,因為它以過程為中心進行功能組合,軟體的擴充和復用能力很差。
對象是對現實世界實體的模擬,因面能更容易地理解需求,即使用戶和分析者之間具有不同的教育背景和工作特點,也可很好地溝通。
區別面向對象的開發和傳統過程的開發的要素有:對象識別和抽象、封裝、
多態性
和繼承。
對象(Object)是一個現實實體的抽象,由現實實體的過程或信息牲來定義。一個對象可被認為是一個把數據(屬性)和程序(方法)封裝在一起的實體,這個程序產生該對象的動作或對它接受到的外界信號的反應。這些對象操作有時稱為方法。對象是個動態的概念,其中的屬性反映了對象當前的狀態。
類(Class)用來描述具有相同的屬性和方法的對象的集合。它定義了該集合中每個對象所共有的屬性和方法。對象是類的實例。
由上分析不難看出,盡管OOP技術更看中用戶的對象模型,但其目的都是以編程為目的的,而不是以用戶的信息為中心的,總想把用戶的信息納入到某個用戶不感興趣的「程序對象」中。

Ⅹ 什麼是面向對象編程

面向對象編程(Object Oriented Programming,OOP,面向對象程序設計)是一種計算機編程架構。OOP 的一條基本原則是計算機程序是由單個能夠起到子程序作用的單元或對象組合而成。OOP 達到了軟體工程的三個主要目標:重用性、靈活性和擴展性。為了實現整體運算,每個對象都能夠接收信息、處理數據和向其它對象發送信息。
對於面向對象的理解。面向對象編程就是把自然界中的事物抽象成一個類,這個類可能會有一些屬性。比如說把「人」抽象成一個類,那麼人有身高、體重、三圍等等屬性。同時這個類可能會有一些方法,比如「人」可以吃喝(對自己的影響是增加體力)、可以走路和跑跳(~使自己產生位移)。

用偽代碼定義一下人這個類

{
//屬性有

姓名,

身高,

體重,
……

//方法有

吃(東西), //參數可以是不同的東西,獲得的能量也不同。

走(方向),
……

}

類的實例叫做對象,在程序中可以通過實例化這個類來描述一個人的屬性,比如這個人叫張三,身高180cm,80kg,三圍是xx、xx、xx等等。

比如我們做了一個游戲,那麼在新玩家創建角色的時候,就可以讓玩家選擇他角色的名字、外形等等參數,然後,用「人」這個類,實例化一個對象,然後在游戲中可以通過鍵盤或者滑鼠觸發走的動作。

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:705
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:968
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:676
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:828
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:737
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1076
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:308
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:188
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:875
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:829