경험 클래스 및 개체
1, PHP 객체지향 소개
객체지향 프로그래밍(영어: 객체지향 프로그래밍, 약어: OOP)에서 객체는 정보와 정보의 집합입니다. 처리되는 전체 설명은 현실 세계의 추상화입니다.
현실 세계에서 우리가 마주하는 것은 컴퓨터, 텔레비전, 자전거 등의 사물입니다.
객체의 세 가지 주요 특성:
객체 동작: 객체에 적용할 수 있는 작업, 즉 조명을 켜고 끄는 작업은 동작입니다. 개체의 모양: 해당 방법을 적용했을 때 개체가 반응하는 방식, 색상, 크기, 모양. 객체의 표현: 객체의 표현은 신분증과 동일하며, 특히 동일한 행동과 상태의 차이를 구별합니다.
예를 들어, Animal은 개와 양을 지정할 수 있는 추상 클래스이고, 개와 양은 색상 속성이 있고, 쓸 수 있고, 달릴 수 있고 기타 동작 상태를 갖습니다.
객체 지향 콘텐츠
클래스 - 사물의 추상적인 특성을 정의합니다. 클래스의 정의에는 데이터의 형식과 데이터에 대한 작업이 포함됩니다.
Object - 클래스의 인스턴스입니다.
멤버 변수 - 클래스 내부에 정의된 변수입니다. 이 변수의 값은 외부 세계에는 보이지 않지만 멤버 함수를 통해 액세스할 수 있습니다. 클래스가 객체로 인스턴스화되면 변수를 객체의 속성이라고 부를 수 있습니다.
멤버 함수 - 클래스 내부에 정의되어 있으며 객체의 데이터에 액세스하는 데 사용할 수 있습니다.
상속 - 상속은 하위 클래스가 상위 클래스의 데이터 구조와 메서드를 자동으로 공유하는 메커니즘입니다. 클래스를 정의하고 구현할 때 기존 클래스를 기반으로 할 수 있고, 기존 클래스에서 정의한 콘텐츠를 자신의 콘텐츠로 가져와서 새로운 콘텐츠를 추가할 수 있습니다.
부모 클래스 - 클래스는 다른 클래스에 의해 상속됩니다. 이 클래스는 부모 클래스, 기본 클래스 또는 슈퍼 클래스라고 부를 수 있습니다.
하위 클래스 - 다른 클래스를 상속하는 클래스를 하위 클래스라고 부르거나 파생 클래스라고도 합니다.
다형성 - 다형성은 동일한 함수나 메서드가 여러 유형의 객체에 작용하여 다른 결과를 얻을 수 있음을 의미합니다. 동일한 메시지를 수신할 때 서로 다른 객체가 서로 다른 결과를 생성할 수 있는 현상을 다형성이라고 합니다.
오버로딩 - 간단히 말해서, 이름은 같지만 매개변수 목록이 다른 함수나 메소드를 오버로딩된 함수 또는 메소드라고 합니다.
추상화 - 추상화는 일관된 데이터 구조(속성)와 동작(작업)을 가진 객체를 클래스로 추상화하는 것을 의미합니다. 클래스는 관련 없는 콘텐츠를 무시하면서 애플리케이션과 관련된 중요한 속성을 반영하는 추상화입니다. 모든 클래스의 구분은 주관적이지만 특정 응용 프로그램과 관련되어야 합니다.
Encapsulation - 캡슐화란 현실 세계에 존재하는 객체의 속성과 동작을 묶어서 논리적 단위로 배치하는 것을 말합니다.
Constructor - 객체를 생성할 때 객체를 초기화하는 데 주로 사용됩니다. 즉, 객체 멤버 변수에 초기 값을 할당하는 데 사용됩니다. 객체를 생성하기 위해 문에서 항상 new 연산자와 함께 사용됩니다.
Destructor - 소멸자(소멸자) 생성자와는 달리 객체의 수명 주기가 끝나면(예: 객체가 위치한 함수가 호출된 경우) 시스템이 자동으로 소멸자를 실행합니다. 소멸자는 종종 "정리" 작업을 수행하는 데 사용됩니다(예를 들어 객체를 생성할 때 new를 사용하여 메모리 공간을 엽니다. 메모리 공간은 종료하기 전에 소멸자에서 삭제와 함께 해제되어야 합니다).
2. 학생 클래스 정의
객체 지향 사고에서는 클래스와 객체라는 두 가지 개념이 제안됩니다. 클래스는 사물의 클래스에 대한 추상적인 설명입니다. 즉, 클래스는 특성을 가져야 합니다. 우리는 일반적으로 사람의 특성을 어떻게 설명합니까? 예를 들어 학생을 이해하려면 먼저 학생의 이름, 성별, 나이, 외모 등을 알아야 합니다. 그리고 이러한 속성은 다음과 같습니다. 클래스 속성에서 멤버라고 합니다. 사람의 기본 속성을 이해한 후에는 그 사람의 행동을 더 자세히 이해하고 싶습니다. 이를 클래스에서 멤버 메서드라고 합니다. 기능. 학생을 예로 들어보겠습니다
먼저 Student.class.php 파일로 정의된 학생 클래스를 만듭니다. (여기서는 일반 스크립트 파일과 구별하기 위해 일반적으로 클래스 이름을 다음과 같은 형식으로 변경합니다. ".class.php"이며, 클래스 이름은 파일 이름 일관성 유지와 동일해야 합니다.)
참고: 클래스의 파일 이름은 클래스 이름과 일치해야 하기 때문입니다. php 파일에는 하나의 클래스 정의 코드만 포함될 수 있습니다.
일반적으로 PHP의 클래스 명명 규칙은 다음과 같습니다.(1) 영어 명사를 사용하고 클래스 파일은 카멜 표기법으로 작성됩니다. 단어는 대문자로 구분하고, 그 외의 문자는 모두 소문자로, 명사의 첫 글자는 대문자로, 밑줄은 사용하지 마세요.
(2) 완전한 단어를 사용하고 약어를 사용하지 마세요(URL, HTML과 같이 약어가 더 널리 사용되지 않는 한).
(3) 클래스 이름을 지정하기 전에 먼저 클래스가 무엇인지 알아보세요. 클래스 이름에서 제공하는 단서를 기반으로 클래스가 무엇인지 아직도 기억할 수 없다면 디자인이 충분하지 않은 것입니다.
(4) 세 단어 이상으로 구성된 클래스 이름을 혼합하면 시스템 내 다양한 개체 간에 혼동을 일으킬 수 있습니다.
예를 들어 : : : class userAccount {
...
}
class PaintingOrder {
...
}
3, 멤버 속성 및 멤버 메소드의 정의
studentName}去上学4. 객체 생성
"; } public function study($time){ echo "学习到{$time}"; } }새 PHP 파일을 생성하여 학생 객체를 인스턴스화합니다object.php:
"; var_dump($student);//查看对象的类型以及具体数据 echo "";
인쇄 결과는 다음과 같습니다.
5, 멤버 속성 설정
위에 인쇄된 속성은 속성이 설정되지 않았기 때문에 모두 null임을 알 수 있습니다. 다음으로 속성을 설정합니다.
코드는 다음과 같습니다.
studentName='小张'; $student->studentId=1; $student->studentAge=25; echo ""; var_dump($student); echo "";
Print 결과는 다음과 같습니다:
6, 멤버 메소드 호출
객체에 다음 코드 추가:
studentName='小张'; $student->studentId=1; $student->studentAge=25; $student->goSchool(); $student->study("22:00");
결과 인쇄: