A. php中的面向對象 -> 是什麼意思
->在php中表示取類的實例的某個屬性或方法
舉例說明:
classmyClass{
publicvar1='var1';
publicfunctionfunc1(){
}
}
$instance1=newmyClass();
$instance1->var1;//var1
$instance1->func1();//執行func1
->可以得到類的屬性或方法,與其他大多數面向對象語言中的「.」的作用相同
B. php面向對象和面向過程的區別
面向過程就是分析出解決問題所需要的步驟,然後用函數把這些步驟一步一步實現,使用的時候一個一個依次調用就可以了。
面向對象是把構成問題事務分解成各個對象,建立對象的目的不是為了完成一個步驟,而是為了描敘某個事物在整個解決問題的步驟中的行為。
例如五子棋,面向過程的設計思路就是首先分析問題的步驟:1、開始游戲,2、黑子先走,3、繪制畫面,4、判斷輸贏,5、輪到白子,6、繪制畫面,7、判斷輸贏,8、返回步驟2,9、輸出最後結果。把上面每個步驟用分別的函數來實現,問題就解決了。
而面向對象的設計則是從另外的思路來解決問題。整個五子棋可以分為 1、黑白雙方,這兩方的行為是一模一樣的,2、棋盤系統,負責繪制畫面,3、規則系統,負責判定諸如犯規、輸贏等。第一類對象(玩家對象)負責接受用戶輸入,並告知第二類對象(棋盤對象)棋子布局的變化,棋盤對象接收到了棋子的i變化就要負責在屏幕上面顯示出這種變化,同時利用第三類對象(規則系統)來對棋局進行判定。
可以明顯地看出,面向對象是以功能來劃分問題,而不是步驟。同樣是繪制棋局,這樣的行為在面向過程的設計中分散在了總多步驟中,很可能出現不同的繪製版本,因為通常設計人員會考慮到實際情況進行各種各樣的簡化。而面向對象的設計中,繪圖只可能在棋盤對象中出現,從而保證了繪圖的統一。
功能上的統一保證了面向對象設計的可擴展性。比如我要加入悔棋的功能,如果要改動面向過程的設計,那麼從輸入到判斷到顯示這一連串的步驟都要改動,甚至步驟之間的循序都要進行大規模調整。如果是面向對象的話,只用改動棋盤對象就行了,棋盤系統保存了黑白雙方的棋譜,簡單回溯就可以了,而顯示和規則判斷則不用顧及,同時整個對對象功能的調用順序都沒有變化,改動只是局部的。
再比如我要把這個五子棋游戲改為圍棋游戲,如果你是面向過程設計,那麼五子棋的規則就分布在了你的程序的每一個角落,要改動還不如重寫。但是如果你當初就是面向對象的設計,那麼你只用改動規則對象就可以了,五子棋和圍棋的區別不就是規則嗎?(當然棋盤大小好像也不一樣,但是你會覺得這是一個難題嗎?直接在棋盤對象中進行一番小改動就可以了。)而下棋的大致步驟從面向對象的角度來看沒有任何變化。
當然,要達到改動只是局部的需要設計的人有足夠的經驗,使用對象不能保證你的程序就是面向對象,初學者或者很蹩腳的程序員很可能以面向對象之虛而行面向過程之實,這樣設計出來的所謂面向對象的程序很難有良好的可移植性和可擴展性。
C. php中面向對象編程是什麼意思,到底用在什麼地方,用一個項目中的實際例子來舉例說明
可以這樣理解,
1、類是模具,對象是模具生成的產品,就是印刷術一樣,有了一個字一個字的模子,要印出一個字來就方便了,想印就印,你可以印,我也可以印。
2、在PHP中怎麼做一個模具出來呢,就用 class申明,它就表示你要造一個模具了,但這個模具是做什麼用的,就要在裡面添加函數來表達了,函數名就是這個類的方法名,函數完成的功能就是類的方法。當然函數要實現功能代碼中肯定要用到變數,這個就是所謂的類的成員以或者說成是類的屬性。
3、有了類的屬性有了類的方法,這就完成了一個類的定義,也就是模具做好了,接下來要理解的就是,怎樣去用這個類了。就好像是要看一本書你不可能到印刷廠去把字的模具拿來拼成一頁一頁書來看吧,肯定是在紙上印刷出來。這個印刷的過程就是對象生成的過程也叫類的實例化。PHP中用new關鍵字來生成對象。比如前面定義的類名為 牛,這個牛有一個方法(函數)是:耕地。當然耕地這個函數,要怎樣去實現那是另外要的事情了。現在要說的是怎麼用牛的耕地方法,首先實例化,在PHP中這樣表示:牛1= new 牛。這樣 牛這個類 就有了一個具體可以使喚的牛1了 要想用牛1的耕地方法,意思就是「調用類(對象)的方法」,PHP中這樣表示,牛1->耕地;如果你想要100頭牛,就new100個出來就行,而不用每當要用牛的時候都去寫牛的代碼和牛耕地的代碼了。
4、上面說的是一個理解過程,要實現就要用到具體的PHP的語法了,比如怎樣申明變數 ,怎樣賦值,怎樣用運算符來運算,怎樣寫循環結構,怎樣寫選擇結構,等等 。
D. php面向對象的概念理解.
我覺得沒必要去深究他的意思。
按我的理解,面向對象編程,主要是將我們實際生活中的對象經過抽象,將它定義成為一個類,通過類的屬性和方法來模擬生活中的這個對象。這樣使得程序更容易結構化、抽象起來更方便。
面向對象技術最初是從面向對象的程序設計開始的,
面向對象編程並不困難
它的出現以60年代simula語言為標志。80年代中後期,面向對象程序設計逐漸成熟,被計算機界理解和接受,人們又開始進一步考慮面向對象的開發問題。這就是九十年代以microsoft
visual系列oop軟體的流行的背景。
傳統的結構化分析與設計開發方法是一個線性過程,因此,傳統的結構化分析與設計方法要求現實系統的業務管理規范,處理數據齊全,用戶能全面完整地其業務需求。
傳統的軟體結構和設計方法難以適應軟體生產自動化的要求,因為它以過程為中心進行功能組合,軟體的擴充和復用能力很差。
對象是對現實世界實體的模擬,因面能更容易地理解需求,即使用戶和分析者之間具有不同的教育背景和工作特點,也可很好地溝通。
區別面向對象的開發和傳統過程的開發的要素有:對象識別和抽象、封裝、多態性和繼承。
對象(object)是一個現實實體的抽象,由現實實體的過程或信息牲來定義。一個對象可被認為是一個把數據(屬性)和程序(方法)封裝在一起的實體,這個程序產生該對象的動作或對它接受到的外界信號的反應。這些對象操作有時稱為方法。對象是個動態的概念,其中的屬性反映了對象當前的狀態。
類(class)用來描述具有相同的屬性和方法的對象的集合。它定義了該集合中每個對象所共有的屬性和方法。對象是類的實例。
由上分析不難看出,盡管oop技術更看中用戶的對象模型,但其目的都是以編程為目的的,而不是以用戶的信息為中心的,總想把用戶的信息納入到某個用戶不感興趣的「程序對象」中。
E. PHP的面向對象究竟是什麼概念
這樣說吧,
在我們初步學習的面向過程程序設計方法,比如C語言中:
程序=演算法+數據結構;
但是面向對象程序設計方法,如C++,和後來的PHP等語言:
程序=(演算法+數據結構);
就是說演算法與數據結構組成一個整體,而這個整體就是類,把類詳細化了就是一個一個具體的對象。
比如定義一個類,再用類聲明一個對象:
class Student()
{....functions()
protected:
int a;
char b;
}
Student xiao;
Student就是一個類,xiao就是一個對象。
像樓主說的那樣,對象除了封裝方法(我們也可以稱之為演算法)之外,還可以有一些數據成員,比如上面的a,b,所以類封裝不只封裝了演算法,還有這些演算法之下的數據!
從某方面來說,面向對象是函數的升級,因為這類也是可以在主函數外定義的,這也可以將其看作是一種特殊的函數(個人看法啊),我們可以調用這「函數」中的數據和方法。所以樓主說的在廣義上也是成立的!
另外,建議樓主先閱讀下C++有關課程的關於面向對象的論述,可能會對你有所幫助!
F. PHP真的能算是面向對象的語言嗎
面向對象三大特性:封裝,繼承,多態
php可以封裝對象,也可以繼承,同樣可以實現多態
多態是指指出重寫和重載,php子類可以重寫父類的方法,也可以通過方法的參數數量不同來重載方法,我覺得是面向對象語言
G. 大家是如何理解PHP編程中的「面向對象」呢
你的理解很形象了, PHP的面向對象功能很弱的, 並不是完全的面向對象的。 你可以理解PHP中的類是帶屬性和方法的結構。 類定義只是定義,類實例才是真正的實現。
H. php面向對象和面向過程的區別
1.面向過程就是你把代碼封裝成子過程或函數(procere),然後依次去做一件事情;
2.面向對象就是你把要做的事情抽象成對象,然後告訴具體的那一個對象去做。
3.面向對象三大特性(封裝,繼承,多態)使得在做復雜的事情的時候效率和正確率得到保證。
4.在實際的編程中「面向對象」和「面向過程」兩種開發思想一定是同時都用到了的,現在宣傳最多的「面向對象」實際上是以面向對象為主題,面向過程為輔助,往往過分了誇大其作用。
I. 什麼是php面向對象及面向對象的三大特性
面向對象是一種編程思維
面向對象的三大特性:
封裝
繼承
多態
J. php面向對象有什麼用
因為功能太多了,把實現一種功能的一系列相關函數和數據封裝成一個類,方便載入和使用。
例如gz壓縮、MySQL、驗證碼等類庫,需要用的時候才載入,一種對象就實現一種功能。