> php教程 > php手册 > 본문

PHP의 객체지향 객체에 대한 지식 포인트 모음

WBOY
풀어 주다: 2016-09-11 11:19:39
원래의
840명이 탐색했습니다.

객체 지향

모든 것이 객체입니다. 객체를 설정하는 목적은 작업을 완료하는 것이 아니라 문제를 해결하는 데 있어 특정 트랜잭션의 동작을 설명하는 것입니다. 인간의 사고 습관과 일치하는 코드입니다. 재사용성과 확장성이 뛰어납니다.
______________________________________________

수업의 개념

카테고리
은 동일한 의미론적 정의(동일한 속성과 메서드를 가진 집합체)를 가진 개체의 모음인 추상 개념입니다. 특정 클래스를 사용할 수 없으며 인스턴스화만 가능합니다. 자동차를 예로 들면 자동차의 디자인 도면이 클래스이고 자동차가 객체입니다. 디자인의 초점은 수업을 만드는 것입니다
실생활에서의 수업 개념
모든 것이 객체입니다. 우리가 사용하는 특정 컴퓨터가 객체라면 컴퓨터도 클래스입니다. 아이를 데리러 유치원에 가는데, 아이를 데리러 가고 싶다고 하면 절대 안 줘요(부모님과 아이가 누구인지 아는 경우가 아니면). 당신의 아이는 구체적인 대상이고, 아이는 사람이다
학급 이름 표기 기준
클래스 이름의 첫 글자를 대문자로 표기하세요. 클래스는 파일에 정의되어 있으며 파일 이름은 .class.php로 끝납니다.
______________________________________________
객체
객체 핸들
다양한 개체를 구별하는 데 사용됩니다. 객체가 생성된 후 메모리에서 저장 공간을 얻습니다. 저장 공간의 주소는 객체의 식별자 또는 핸들
입니다.
속성
클래스에 정의된 변수는 멤버 속성으로, 객체의 정적 특성에 대한 데이터를 설명하는 데 사용됩니다. 이름, 성별 등 첫 글자는 소문자
방법
클래스에 정의된 함수는 객체의 동적 특성의 작동 동작을 설명하는 데 사용되는 멤버 메서드입니다. 메서드 이름은 대소문자를 구분하지 않으며 첫 글자는 소문자일 수 없습니다.
객체 수명주기
생성 후 프로그램이 종료되거나 프로그래머가 개체를 지우면 해당 개체는 자동으로 삭제됩니다.

객체 수명주기

1 프로그램 실행이 완료된 후 PHP는 재활용 메커니즘을 실행하고 메모리의 객체를 삭제합니다.
2 모두 삭제
객체가 참조된 후 해당 객체는 쓰레기이며 재활용 메커니즘이 자동으로 쓰레기를 삭제합니다

객체 생성 단계

1 콘텐츠의 개체를 위한 공간 만들기
2 시공방법 실행
3 객체의 참조 주소를 반환합니다

객체의 메모리 분포:

1 개체 참조는 "스택 메모리"에 배치됩니다(스택은 고정 콘텐츠를 저장함)
2 객체는 "힙 메모리"(힙은 가변 콘텐츠를 저장함)에 배치됩니다.
3개의 정적 멤버는 처음 로드될 때 "데이터 영역"에 배치되므로 힙 메모리의 모든 개체에서 공유할 수 있습니다.
코드 영역에는 4개의 함수와 메소드가 배치되어 있습니다


객체 지향 기능

추상성
객체 클래스의 공통 속성과 메서드를 추상화하여 클래스를 구성하는 사고방식은 추상적입니다
캡슐화:
멤버 메소드와 멤버 속성을 클래스로 캡슐화하고, 속성과 메소드를 숨기고, 메소드 구현 세부사항을 숨기고, 공개 보호 비공개 최종 정적을 통해 클래스 멤버에 대한 액세스 권한을 제한합니다. 데이터는 내부적으로 보호되며 승인된 메소드만 액세스할 수 있습니다. 사용할 수 있습니다. 멤버를 최대한 캡슐화하세요
확장 상속:
클래스를 상속하고 다른 기존 클래스의 멤버 속성과 메서드를 가질 수 있습니다. 상속된 클래스를 상위 클래스 또는 기본 클래스라고 하며 상속된 클래스를 하위 클래스라고 합니다. 확장 키워드는 상속 관계를 구현합니다
다형성:
하위 클래스는 상위 클래스를 상속하고 상위 클래스 메서드를 재정의하여 다형성을 달성합니다
____________________________________________________________________________

액세스 한정자(범위 설명자)

공개
클래스나 서브클래스 내부와 외부 모두 접근이 가능하며, 이는 가장 개방적인 권한입니다
비공개
정의된 클래스의 속성과 메소드는 클래스 내부에서 접근할 수 있지만 클래스나 서브클래스 외부에서는 접근할 수 없습니다
보호됨
클래스 또는 하위 클래스 내부에서 액세스할 수 있지만 클래스 외부에서는 액세스할 수 없는 클래스의 속성과 메서드를 정의합니다
모듈 설계
강한 응집력(함수는 가능한 한 클래스 내에서 완료되어야 함), 약한 결합(외부 호출에 대해 가능한 한 적은 수의 메소드 공개). 예: 회사의 영업팀이 프로젝트를 받고 구체적인 작업은 회사 내부 프로그래머, 디자이너, 서버 관리자가 공동으로 완료하도록 맡깁니다.
____________________________________________________________________________

정적 정적 속성 및 정적 메서드

데이터 개체는 클래스를 제공하는 데에만 필요합니다. 즉, 클래스를 내부적으로는 사용할 수 있지만 외부에서는 사용할 수 없는 경우입니다. 객체를 생성하는 것은 리소스를 많이 소모하므로 메소드가 널리 알려진 경우 이 메소드를 호출하기 위해 클래스의 인스턴스를 다시 생성할 필요가 없습니다. 정의된 메서드나 변수는 프로그램이 처음 로드될 때 메모리에 상주하고 프로그램이 끝나면 해제됩니다.
정적 메서드는 비정적 메서드로 재정의될 수 없으며 생성자를 정적으로 선언할 수 없습니다.
정적 변수:
정적을 통해 선언된 멤버 변수는 클래스의 공용 변수입니다. 처음 사용될 때 해당 클래스의 모든 개체에 대해 하나의 복사본만 있습니다. 클래스 객체가 아닌 클래스. 정적 변수는 객체가 아닌 클래스에 속하며 클래스를 통해 어디에서나 액세스할 수 있으며 클래스가 생성될 때 메모리에 저장됩니다. 여러 개체의 경우 정적 데이터 멤버는 한 곳에만 저장되므로 메모리를 절약할 수 있습니다. 정적 데이터 멤버의 값이 한 번 업데이트되는 한 모든 개체는 동일한 업데이트된 값에 액세스할 수 있습니다.
정적 메서드:
static으로 선언된 메서드는 정적 메서드 또는 클래스 메서드입니다. 이 메서드를 실행하면 개체 참조가 함수에 전달되지 않으므로 정적 메서드나 정적 변수만 액세스할 수 있고 비정적 멤버에는 액세스할 수 없습니다. self static parent 등 클래스와 관련된 메소드만 사용할 수 있습니다. 사용시 객체를 생성하지 않고 실행할 수 있습니다
$this self:: parent::
$이것
은 현재 객체에 대한 참조이며 일반적으로 메서드에 나타나며 클래스의 멤버 속성을 얻거나 클래스
의 멤버 메서드를 실행하는 데 사용됩니다.
자신:
현재 클래스 self::run()의 상태 멤버 특성이나 정적 멤버 메서드를 가져오는 데 사용되는 이 클래스에 대한 참조
부모 ::
부모 클래스에 대한 참조, 부모 클래스의 메서드 또는 속성 호출.
_______________________________________________________________________________

시공방법 및 파기방법

구성 방법__construct()
객체 생성 시 자동으로 실행되며 반환 값이 없습니다. 객체 속성 초기화 등 클래스의 일부 초기화 작업을 수행하는 데 사용됩니다. PHP4의 생성자 메서드는 클래스와 동일한 이름을 가져야 합니다. PHP5에서는 생성자 메서드가 __construct()입니다. 클래스 이름에 영향을 받지 않는다는 장점이 있습니다. __construct가 존재하지 않으면 PHP는 클래스와 동일한 이름의 메서드를 검색하여 자동으로 실행합니다.
생성자에 매개변수를 전달하여 속성을 정의할 수 있습니다. 상위 클래스와 하위 클래스 모두 생성자를 정의하면 하위 클래스의 생성자가 실행됩니다.
소멸자 메서드 __destruct():
매개변수 없이 객체가 메모리에서 소멸될 때 자동으로 실행되던 메소드
_______________________________________________________________________________

객체 최종 상수

  1. <span class="com">//类里面的方法不能修改</span>
  2. <span class="com">//类不能被继承</span>
  3. <span class="pln"> <span class="kwd">final<span class="pln"> <span class="kwd">class<span class="pln"> souji <span class="pun">{</span></span></span></span></span></span>
  4. <span class="pln"> <span class="kwd">final<span class="pln"> <span class="kwd">public<span class="pln"> $pinpai<span class="pun">;<span class="pln"> <span class="com">//报错</span></span></span></span></span></span></span></span>
  5. <span class="pln"> <span class="kwd">final<span class="pln"> <span class="kwd">function<span class="pln"> congdian<span class="pun">()<span class="pln"> <span class="pun">{<span class="pln"> <span class="com">//无效</span></span></span></span></span></span></span></span></span></span>
  6. <span class="pln"> echo $this<span class="pun">-><span class="pln">pinpai <span class="pun">.<span class="pln"> <span class="str">"手机通过10v电压来充电"<span class="pun">;</span></span></span></span></span></span></span>
  7. <span class="pln"> <span class="pun">}</span></span>
  8. <span class="pln"> <span class="kwd">public<span class="pln"> <span class="kwd">function<span class="pln"> kaijidonghua<span class="pun">()<span class="pln"> <span class="pun">{</span></span></span></span></span></span></span></span>
  9. <span class="pln"> echo <span class="str">"<<< 没有开机动画 >>>>"<span class="pun">;</span></span></span>
  10. <span class="pln"> <span class="pun">}</span></span>
  11. <span class="pun">}</span>
  12. <span class="kwd">class<span class="pln"> moto <span class="kwd">extends<span class="pln"> souji <span class="pun">{</span></span></span></span></span>
  13. <span class="pln"> <span class="kwd">public<span class="pln"> <span class="kwd">function<span class="pln"> __construct<span class="pun">()<span class="pln"> <span class="pun">{</span></span></span></span></span></span></span></span>
  14. <span class="pln"> <span class="com">// $this->pinpai = "摩托罗拉";</span></span>
  15. <span class="pln"> $this<span class="pun">-><span class="pln">congdian<span class="pun">();</span></span></span></span>
  16. <span class="pln"> <span class="pun">}</span></span>
  17. <span class="pln"> <span class="kwd">public<span class="pln"> <span class="kwd">function<span class="pln"> kaijidonghua<span class="pun">()<span class="pln"> <span class="pun">{</span></span></span></span></span></span></span></span>
  18. <span class="pln"> echo <span class="str">"摩托罗拉商标"<span class="pun">;</span></span></span>
  19. <span class="pln"> <span class="pun">}</span></span>
  20. <span class="pun">}</span>
  21. <span class="pln">$li <span class="pun">=<span class="pln"> <span class="kwd">new<span class="pln"> moto<span class="pun">();</span></span></span></span></span></span>
  22. $li <span class="pln">$li<span class="pun">-><span class="pln">kaijidonghua<span class="pun">();</span></span></span></span>= 새로운 모토
  23. ( );
  24. $li->카이지동화
  25. ();
  26. <span class="com">//定义常量</span>
  27. <span class="pln">define<span class="pun">(<span class="str">"WEBNAME"<span class="pun">,<span class="pln"> <span class="str">"文豆"<span class="pun">);</span></span></span></span></span></span></span>
  28. <span class="kwd">function<span class="pln"> aa<span class="pun">(){</span></span></span>
  29. <span class="pln"> echo WEBNAME<span class="pun">.<span class="str">"专注PHPWEB开发"<span class="pun">;</span></span></span></span>
  30. <span class="pun">}</span>
  31. <span class="pln">aa<span class="pun">();</span></span>
  32. //정량수
  33. <span class="kwd">class<span class="pln"> caiwu<span class="pun">{</span></span></span>
  34. <span class="pln"> <span class="kwd">const<span class="pln"> suilv<span class="pun">=<span class="lit">0.05<span class="pun">;</span></span></span></span></span></span>정의
  35. ("WEBNAME"
  36. , "文豆"<span class="pln"> <span class="kwd">function<span class="pln"> __construct<span class="pun">(){</span></span></span></span>);
  37. <span class="pln"> echo WEBNAME<span class="pun">;</span></span>
  38. <span class="pln"> <span class="pun">}</span></span>
  39. <span class="pln"> <span class="kwd">function<span class="pln"> kaigonzi<span class="pun">(<span class="pln">$xingming<span class="pun">,<span class="pln">$gongzi<span class="pun">){</span></span></span></span></span></span></span></span>
  40. 기능aa<span class="pln"> $gongzi <span class="pun">=<span class="pln"> $gongzi<span class="pun">-<span class="pln">$gongzi<span class="pun">*<span class="kwd">self<span class="pun">::<span class="pln">suilv<span class="pun">;</span></span></span></span></span></span></span></span></span></span>(){
  41. <span class="pln"> <span class="kwd">return<span class="pln"> $xingming<span class="pun">.<span class="str">"的工资是:"<span class="pun">.<span class="pln">$gongzi<span class="pun">.<span class="str">"元"<span class="pun">;</span></span></span></span></span></span></span></span></span></span>
  42. echo WEBNAME
  43. ."专注PHPWEB开发"<span class="pln"> <span class="pun">}</span></span>;
  44. <span class="pun"> } <span class="pln">아아(); <span class="kwd">클래스<span class="pln"> 카이우{ <span class="pln"> <span class="kwd">const<span class="pln"> suilv=<span class="lit">0.05; <span class="pln"> <span class="kwd">함수<span class="pln"> __construct(){ <span class="pln"> echo WEBNAME; <span class="pln"> } <span class="pln"> <span class="kwd">함수<span class="pln"> kaigonzi(<span class="pln">$xingming, <span class="pln">$gongzi){ <span class="pln"> $gongzi =<span class="pln"> $gongzi-<span class="pln">$gongzi*<span class="kwd">자신::<span class="pln">suilv; <span class="pln"> <span class="kwd">반환<span class="pln"> $xingming.<span class="str">"的工资是: ".<span class="pln">$gongzi.<span class="str">"元"; <span class="pln"> } }</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>
  45. <span class="com">/*员工类*/<code class="language-php"><span class="com">/*员工类*/</span>
  46. <span class="kwd">class<span class="pln"> yuangong<span class="pun">{</span></span></span><span class="kwd">클래스<span class="pln">위안공<span class="pun">{</span></span></span>
  47. <span class="pln"> <span class="kwd">private<span class="pln"> $xingming<span class="pun">;<span class="com">//姓名</span></span></span></span></span>
  48. <span class="pln"> <span class="kwd">private<span class="pln"> $gongzisu<span class="pun">;<span class="com">//工资数</span></span></span></span></span><span class="pln"> <span class="kwd">비공개<span class="pln"> $xingming<span class="pun">;//이름</span></span></span></span>
  49. <span class="pln"> <span class="kwd">function<span class="pln"> __construct<span class="pun">(<span class="pln">$xingming<span class="pun">,<span class="pln">$gongzisu<span class="pun">){</span></span></span></span></span></span></span></span>
  50. <span class="pln"> $this<span class="pun">-><span class="pln">xingming <span class="pun">=<span class="pln"> $xingming<span class="pun">;</span></span></span></span></span></span>
  51. <span class="pln"> <span class="kwd">비공개<span class="pln"> $gongzisu<span class="pun">;//工资数<code class="language-php"><span class="pln"> $this<span class="pun">-><span class="pln">gongzisu <span class="pun">=<span class="pln"> $gongzisu<span class="pun">;</span></span></span></span></span></span>
  52. <span class="pln"> <span class="pun">}</span></span>
  53. <span class="pln"> <span class="kwd">function<span class="pln"> kaizi<span class="pun">(){</span></span></span></span>
  54. <span class="pln"> <span class="kwd">함수<span class="pln"> __construct<span class="pun">(<span class="pln">$xingming<span class="pun">,<span class="pln">$gongzisu<span class="pun">){<li class="L9"><code class="language-php"><span class="pln"> $caiwu <span class="pun">=<span class="pln"> <span class="kwd">new<span class="pln"> caiwu<span class="pun">();</span></span></span></span></span></span>
  55. <span class="pln"> <span class="kwd">return<span class="pln"> $caiwu<span class="pun">-><span class="pln">kaigonzi<span class="pun">(<span class="pln">$this<span class="pun">-><span class="pln">xingming<span class="pun">,<span class="pln"> $this<span class="pun">-><span class="pln">gongzisu<span class="pun">);</span></span></span></span></span></span></span></span></span></span></span></span></span></span>
  56. <span class="pln"> <span class="pun">}</span></span>
  57. <span class="pun">}</span><span class="pln"> $this<span class="pun">-><span class="pln">xingming <span class="pun">=<span class="pln"> $xingming<span class="pun">;</span></span></span></span></span></span>
  58. <span class="pln">$lisi <span class="pun">=<span class="pln"> <span class="kwd">new<span class="pln"> yuangong<span class="pun">(<span class="str">"李四"<span class="pun">,<span class="pln"> <span class="str">"6000"<span class="pun">);</span></span></span></span></span></span></span></span></span></span></span>
  59. <span class="pln">echo $lisi<span class="pun">-><span class="pln">kaizi<span class="pun">();</span></span></span></span>
$this->공즈수 =$공지수;
<span class="pln"> <span class="pun">}</span></span>
<span class="pln"> <span class="kwd">함수<span class="pln"> kaizi<span class="pun">(){ </span></span></span></span>
<span class="pln"> $caiwu <span class="pun">=<span class="pln"> <span class="kwd">new caiwu<span class="pun">(); <code class="언어-php"><span class="pln"> <span class="kwd">반품<span class="pln"> $caiwu<span class="pun">-&gt ;<span class="pln">kaigonzi<span class="pun">(<span class="pln">$this<span class="pun">-><span class="pln">xingming,<span class="pln"> $this<span class="pun">-><span class="pln">공즈수<span class="pun">); <code class="언어-php"><span class="pln"> <span class="pun">} <code class="언어-php"><span class="pun">} <code class="언어-php"><span class="pln">$lisi <span class="pun">=<span class="pln"> <span class="kwd">new 위안공<span class="pun">(<span class="str">"이사"<span class="pun">,<span class="pln"> <span class="str">"6000"<span class="pun">); <code class="언어-php"><span class="pln">echo $lisi<span class="pun">-><span class="pln">kaizi<span class="pun">();           </span></span></span></span>
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!