PHP OOP

類跟對象的關系
類是對象的抽象(對象的描述(屬性),對象的行為(方法))
對象是類的實體
面相對象的三大特征:封裝、集成、多態
自定義類
Class?Person{
}
屬性定義
屬性是類里面的成員,所以要定義屬性的前提條件是需要聲明一個類
Class?Person{
public?$name;//?屬性
public?$age;
public?$sex;
}
方法定義
方法是定義特定功能的代碼塊,在類中定義方法表示,創建對象之后,對象的特定行為;
Class?Person{
public?function?eat($food){
echo?"Person?can?eat?".$food;
}
}
實例化對象
Class?Person{
public?$name;//?屬性
public?$age;
public?$sex;
public?function?eat($food){
echo?"Person?can?eat?".$food;
}
}
$person1=new?Person();
屬性的賦值
$person1->name="curtis";
echo?$person1->name;
類方法的調用
$person1->eat("Apple");
繼承(PHP是單繼承,也就是一個子類只能有一個父類)
為什么要繼承?
回復:為了屬性、方法的重復利用;
業務場景:
有個Person類,有一個Student類;
Person里面有姓名、年齡、性別
如果Student里面再將上面的屬性定義一次,那就糟蹋了繼承這個神器;
Person類叫Student類的父類,Student類是Person類的之類;
Class?Person{
public?$name;//?屬性
public?$age;
public?$sex;
public?function?eat($food){
echo?"can?eat?".$food;
}
}
Class?Student?extends?Person{
public?$student_id;
public?function?write(){
echo?"I?can?write";
}
public?function?read(){
echo?"I?can?read";
}
}
$student1=new?Student();
$student1->name="curtis1";
echo?$student1->name;
echo?"<br?/>";
$student1->eat("面");
echo?"<br?/>";
訪問修飾符
public?protected?private
public?當前類,子類中均可訪問;
protected?當前類,子類內部允許訪問;
private?當前類內部允許訪問;
這個地方需要重點了解:
范圍
什么叫類內部?
{}內叫類內部,出了{},實例化對象的時候構造函數也是內內部;
Class?Person{
public?$name;//?屬性
public?$age;
private?$sex;//?私有屬性
public?function?eat($food){
echo?"eat?".$food;
}
function?__construct($sex){
echo?"性別:".$sex;
}
}
Class?Student?extends?Person{
public?$student_id;
public?function?write(){
echo?"I?can?write";
}
public?function?read(){
echo?"I?can?read";
}
}
$person1=new?Person("男");
static?關鍵字
為什么要有這么一個關鍵字?
常量
PI
靜態屬性?public?static?$PI?=?3.14;
靜態方法?
靜態成員訪問方式(類外部):
類名::屬性名稱
在當前類中訪問靜態屬性:
statis::屬性名;
在子類內部訪問父類靜態成員,parent::屬性名;statis::屬性名;
class?Person
{
public?$name;
//?屬性
public?$age;
private?$sex;
//?私有屬性
public?function?eat($food)
{
echo?"eat?"?.?$food;
}
public?static?$PI?=?3.14;
/**
*?構造函數
*/
function?__construct($sex)
{
echo?"性別:"?.?$sex;
}
function?show(){
echo?static::$PI;
}
}
class?Student?extends?Person
{
public?$student_id;
public?function?write()
{
echo?"I?can?write";
}
function?__construct()
{}
public?function?read()
{
echo?"I?can?read";
}
public?function?add()
{
echo?1?+?parent::$PI."<br?/>";
echo?2?+?static::$PI;
}
}
$person1?=?new?Person("男");
echo?"<br?/>";
$person1->show();
echo?"<br?/>";
echo?Person::$PI?.?"<br?/>";
$student1?=?new?Student();
echo?Student::$PI;
echo?"<br?/>";
$student1->add();
方法的重寫
方法的重載
什么叫相同的方法,什么叫不同的方法?
回復:相同的方法:方法名稱相同,方法的參數列表相同;
不同的方法:方法名稱不同;方法名稱相同,方法的參數列表不同;
為什么會有方法的重寫?
回復:父類定義的方法子類有同樣的方法,子類的中的方法要實現有自己的行為;
方法的重載
為什么會有方法的重載?
回復:類中同樣一個方法名稱,通過不同的參數傳遞實現各自的行為;
final關鍵字
跟方法的重寫對應來的
父類中有一個final關鍵字修飾的方法,子類想對該方法進行重寫那是不被允許的;
接口(interface)

轉載于:https://www.cnblogs.com/meroselove/p/5275318.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/458191.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/458191.shtml
英文地址,請注明出處:http://en.pswp.cn/news/458191.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

kv存儲對抗關系型數據庫

http://www.searchdatabase.com.cn/showcontent_52657.htm轉載于:https://www.cnblogs.com/hexie/p/5276034.html

模板匹配算法

from&#xff1a;https://blog.csdn.net/zhi_neng_zhi_fu/article/details/51029864 模板匹配(Template Matching)算法 模板匹配&#xff08;Template Matching&#xff09;是圖像識別中最具代表性的方法之一。它從待識別圖像中提取若干特征向量與模板對應的特征向量進行比較…

關于linux用戶權限的理解

創建用戶useradd 用戶名創建用戶組groupadd 組名查看用戶Idid 用戶修改文件權限chmod 777 文件名或目錄-R 遞歸修改用戶數組chown 屬主&#xff1a;屬組 文件名或目錄名-R 遞歸轉載于:https://blog.51cto.com/1979431/1833512

IMEI串號

IMEI串號就是國際移動設備身份碼&#xff0c;是電子設備的唯一身份證&#xff0c;由于它的唯一性&#xff0c;它可以用來查詢電子設備的保修期還有產地&#xff0c;可以說用處直逼人民的身份證啊&#xff01; 在撥號鍵盤頁面 輸入【*#06#】五個字符轉載于:https://www.cnblogs…

立體匹配十大概念綜述---立體匹配算法介紹

from&#xff1a;https://blog.csdn.net/wintergeng/article/details/51049596 一、概念 立體匹配算法主要是通過建立一個能量代價函數&#xff0c;通過此能量代價函數最小化來估計像素點視差值。立體匹配算法的實質就是一個最優化求解問題&#xff0c;通過建立合理的能量函數…

zjnu1730 PIRAMIDA(字符串,模擬)

Description Sample Input 6 JANJETINA 5 1 J 1 A 6 N 6 I 5 E Sample Output 1 0 2 1 1題意&#xff1a;給你一個長度小于等于10^6的字符串&#xff0c;然后每次讓它循環鋪蓋&#xff0c;構成層數為n的塔&#xff0c;讓你求得第i層塔中某個字符的個數。 思路&#xff1a;首先要…

ICP算法理解

from&#xff1a;https://blog.csdn.net/linear_luo/article/details/52576082 1 經典ICP ICP的目的很簡單&#xff0c;就是求解兩堆點云之間的變換關系。怎么做呢&#xff1f;思路很自然&#xff0c;既然不知道R和t(針對剛體運動)&#xff0c;那我們就假設為未知量唄&#xf…

2016-8-2更新日志

1.修正版本管理器資源文件名 不能正確拉取 91Resource 文件下的資源的問題2.修正商城購買物品不計算負重的問題3.修正拾取疊加物品 只計算一個物品的重量的問題4.游戲參數-> 游戲選項2->增加物品使用間隔5.修正冷酷不加技能點的BUG6.自定義UI開放測試[目前只能針對熱血傳…

字符流緩沖區的使用之BufferedWriter和BufferedReader

從字符輸入流中讀取文本&#xff0c;緩沖各個字符&#xff0c;從而實現字符、數組和行的高效讀取&#xff0c;代碼中使用了輸入緩沖區的特有的方法&#xff1a;readLine(),獲取一行文本數據 import java.io.BufferedReader; import java.io.FileNotFoundException; import java…

圖像處理的灰度化和二值化

from&#xff1a;http://blog.sina.com.cn/s/blog_13c6397540102wqtt.html 在圖像處理中&#xff0c;用RGB三個分量&#xff08;R&#xff1a;Red&#xff0c;G&#xff1a;Green&#xff0c;B&#xff1a;Blue&#xff09;&#xff0c;即紅、綠、藍三原色來表示真彩色&#x…

結合 category 工作原理分析 OC2.0 中的 runtime

絕大多數 iOS 開發者在學習 runtime 時都閱讀過 runtime.h 文件中的這段代碼: struct objc_class {Class isa OBJC_ISA_AVAILABILITY;#if !__OBJC2__Class super_class OBJC2_UNAVAILABLE;const char *name …

獲取子元素

1、純css 獲取子元素 #test1>div {background-color:red;}#test1 div {font-size:14px;}#test1>div:first-child {color:#ccc;} <div id"test1"><div>性別</div><div>男</div></div> 因1示例中為#test1下的子元素 #test1…

JPG PNG GIF BMP圖片格式的區別

類型優點缺點應用場景相同圖片大小比較BMP無損壓縮&#xff0c;圖質最好文件太大&#xff0c;不利于網絡傳輸 152KGIF動畫存儲格式最多256色&#xff0c;畫質差 53KPNG可保存透明背景的圖片畫質中等 202KJPG文件小&#xff0c;利于網絡傳輸畫質損失車牌識別84K BMP BMP&…

EasyUI左右布居

<!DOCTYPE html><html xmlns"http://www.w3.org/1999/xhtml"><head runat"server"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8" /> <title>首頁</title> <li…

44.Android之Shape設置虛線、圓角和漸變學習

Shape在Android中設定各種形狀&#xff0c;今天記錄下&#xff0c;由于比較簡單直接貼代碼。 Shape子屬性簡單說明一下:   gradient -- 對應顏色漸變。 startcolor、endcolor就不多說了。 android:angle是指從哪個角度開始變.solid -- 填充。stroke -- 描邊。corners -- 圓角…

幾種邊緣檢測算子的比較Roberts,Sobel,Prewitt,LOG,Canny

from&#xff1a;https://blog.csdn.net/gdut2015go/article/details/46779251 邊緣檢測是圖像處理和計算機視覺中的基本問題&#xff0c;邊緣檢測的目的是標識數字圖像中亮度變化明顯的點。圖像屬性中的顯著變化通常反映了屬性的重要事件和變化。這些包括&#xff1a;深度上的…

django 初試

/*************************************************************************************** django 初試* 說明&#xff1a;* 昨天打搭了dgango的服務器&#xff0c;今天學一下怎么來輸出一個hello world出來。* * …

淺析“高斯白噪聲”,“泊松噪聲”,“椒鹽噪聲”的區別

from&#xff1a;https://www.jianshu.com/p/67f909f3d0ce 在圖像處理的過程中&#xff0c;一般情況下都進行圖像增強&#xff0c;圖像增強主要包括“空域增強”和“頻域增強”&#xff0c; 空域增強包括平滑濾波和銳化濾波。 平滑濾波&#xff0c;就是將圖像模糊處理&#x…

HttpClient通過Post上傳文件(轉)

在之前一段的項目中&#xff0c;使用Java模仿Http Post方式發送參數以及文件&#xff0c;單純的傳遞參數或者文件可以使用URLConnection進行相應的處理。 但是項目中涉及到既要傳遞普通參數&#xff0c;也要傳遞多個文件&#xff08;不是單純的傳遞XML文件&#xff09;。在網上…

數字圖像處理:各種變換濾波和噪聲的類型和用途總結

摘自http://imgtec.eetrend.com/blog/4564 一、基本的灰度變換函數 1.1圖像反轉 適用場景&#xff1a;增強嵌入在一幅圖像的暗區域中的白色或灰色細節&#xff0c;特別是當黑色的面積在尺寸上占主導地位的時候。 1.2對數變換&#xff08;反對數變換與其相反&#xff09; …