>php教程 >php手册 >PHP 연구 노트 객체 지향

PHP 연구 노트 객체 지향

PHP中文网
PHP中文网원래의
2017-07-29 16:36:283746검색

public Public: 이 클래스, 하위 클래스 및 외부 개체는 모두
를 호출할 수 있습니다. protected Protected: 이 클래스의 하위 클래스는 실행될 수 있지만, 외부 개체는 호출할 수 없습니다.
private: 이 클래스만 호출할 수 있습니다. 실행, 하위 클래스 및 외부 개체는 호출할 수 없습니다.
객체지향 프로그래밍의 세 가지 주요 특징

1) 클로저

클로저, 정보 은닉이라고도 할 수 있습니다. 클래스의 사용과 구현을 분리하고, 제한된 인터페이스(메서드)만 남겨 외부와 연결하는 것이다. 이 클래스를 사용하는 개발자는 이 클래스의 사용법만 알면 되며, 이 클래스가 어떻게 구현되는지는 신경 쓸 필요가 없습니다. 이를 통해 개발자는 다른 일에 더 집중할 수 있으며, 프로그램 간의 상호 의존성으로 인한 불편함도 피할 수 있습니다.

2) 상속

상속이란 파생 클래스(하위 클래스)가 하나 이상의 기본 클래스(상위 클래스)의 속성과 메서드를 자동으로 상속하고 새 속성을 재정의하거나 추가할 수 있음을 의미합니다. 및 방법. 상속은 객체와 클래스 생성을 단순화하고 코드 재현성을 높입니다. 상속은 단일 상속과 다중 상속으로 구분됩니다. PHP는 단일 상속을 지원합니다. 즉, 하위 클래스는 하나의 상위 클래스만 갖습니다.

3) 다형성

다형성은 같은 클래스의 서로 다른 객체가 동일한 방법을 사용하여 서로 다른 결과를 얻을 수 있다는 것을 의미합니다. 다형성은 소프트웨어 유연성과 재사용성을 향상시킵니다.

클래스 정의

클래스에는 자체 상수, 변수("속성"이라고 함) 및 함수("메서드"라고 함)가 포함될 수 있습니다.
많은 객체 지향 언어와 마찬가지로 PHP도 클래스 키워드와 클래스 이름을 통해 클래스를 정의합니다. 클래스의 형식은 다음과 같습니다.

코드는 다음과 같습니다.

<?php
  Class myobject{
    //……
    }
?>

정의: 깃털 같은 새들이 모여들고, 비슷한 특성을 가진 개체들이 모여서 클래스가 됩니다. 클래스는 이러한 유사한 객체가 소유한 것과 동일한 속성을 정의합니다. 클래스는 유사한 객체에 대한 설명으로, 클래스 정의라고 하며 해당 클래스 객체의 청사진 또는 프로토타입입니다.

클래스의 객체를 클래스의 인스턴스라고 합니다. 클래스의 인스턴스를 생성하려면 new 키워드를 사용해야 합니다.

<?php
//类的定义以关键字class开始,类的命名通常以每个单词第一个字母大写
    class NbaPlayer{
        public $name = "Jordan"; //定义属性
        public $height = "198cm";
        public $team = "Bull";
        public $playerNumber = "23";
        //定义方法
    public function run(){
        echo "Running\n";
    }
    public function dribblr(){
        echo "Dribbling\n";
    }
    public function pass(){
        echo "Passing\n";
    }
}
    //类到对象的实例化
    //类的实例化为对象时使用关键字new,new之后紧跟类的名称和一对括号
    $jordan = new NbaPlayer(); 
    //对象中的属性成员可以通过"->"符号来访问
    echo $jordan->name."\n";
    //对象中的成员方法可以通过"->"符号来访问
    $jordan->dribble();
    $jordan->run();
?>

멤버 메소드

클래스의 함수를 멤버 메소드라고 합니다. 함수와 멤버 메서드의 유일한 차이점은 함수는 독립적인 함수를 구현하는 반면, 멤버 메서드는 클래스에서 동작을 구현하고 클래스의 일부라는 것입니다.
위의 myobject 클래스를 확장하고 여기에 멤버 메소드를 추가해 보겠습니다. 코드는 다음과 같습니다.

<?php
classmyobject{
   function getobjectname($name){
      echo "商品名称为:".$name;
   }
}
?>

이 메소드의 기능은 전달된 제품 이름을 출력하는 것입니다. 메소드의 매개변수.
클래스는 추상적인 설명, 유사한 기능을 가진 객체의 모음입니다. 클래스의 메소드와 변수를 사용하려면 먼저 이를 엔터티, 즉 객체에 구현해야 합니다.

클래스 상수
변수가 있듯이 당연히 상수도 있습니다. 상수는 변하지 않는 양이며 일정한 값입니다. 잘 알려진 상수는 파이(pi)이다. 상수를 정의하려면 다음과 같이 const 키워드를 사용하세요.
ConstPI=3.14159;

생성자

PHP 5에서는 개발자가 메서드를 클래스의 생성자로 정의할 수 있습니다. 생성자가 있는 클래스는 새 객체가 생성될 때마다 이 메서드를 호출하므로 객체를 사용하기 전에 일부 초기화 작업을 수행하는 데 매우 적합합니다.


소멸자

<?php
//类的定义以关键字class开始,类的命名通常以每个单词第一个字母大写
    class NbaPlayer{
        public $name = "Jordan"; //定义属性
        public $height = "198cm";
        public $team = "Bull";
        public $playerNumber = "23";
        //构造函数,在对象被实例化的时候自动调用
        function __construct($name,$height,$weight,$team){
            echo "It is an  NbaPlayer constructor\n";
            $this->name = $name;
            //$this是PHP里面的伪变量,表示对象自身。可以通过$this->的方式访问对象的属性和方法
            $this->height = $height;
            $this->weight = $weight;
            $this->team = $team;
        }
        //定义方法
    public function run(){
        echo "Running\n";
    }
    public function dribblr(){
        echo "Dribbling\n";
    }
    public function pass(){
        echo "Passing\n";
    }
}
    //类到对象的实例化
    //类的实例化为对象时使用关键字new,new之后紧跟类的名称和一对括号
    $jordan = new NbaPlayer("Jordan","198cm","98kg","Bull");   
    //对象中的属性成员可以通过"->"符号来访问
    echo $jordan->name."\n";
    //对象中的成员方法可以通过"->"符号来访问
    $jordan->dribble();
    $jordan->run();
    //每一次用new实例化对象的时候,都会用类名后面的参数列表调用构造函数
    $james = new NbaPlayer("James","203cm","120kg","Heat")
    echo $james->name."\n";
?>

소멸자는 객체에 대한 모든 참조가 삭제되거나 객체가 명시적으로 소멸될 때 발생합니다.

객체 참조

<?php
//类的定义以关键字class开始,类的命名通常以每个单词第一个字母大写
    class NbaPlayer{
        public $name = "Jordan"; //定义属性
        public $height = "198cm";
        public $team = "Bull";
        public $playerNumber = "23";

        //构造函数,在对象被实例化的时候自动调用
        function __construct($name,$height,$weight,$team){
            echo "It is an  NbaPlayer constructor\n";
            $this->name = $name;
            //$this是PHP里面的伪变量,表示对象自身。可以通过$this->的方式访问对象的属性和方法
            $this->height = $height;
            $this->weight = $weight;
            $this->team = $team;
        }
        //析构函数,在程序执行结束的时候会自动调用
        //析构函数通常被用于清理程序使用的资源。比如程序使用了打印机,那么可以再析构函数里面释放打印机资源
        function __destruct(){
            echo "Destroying".$this->name."\n";
        }
        //定义方法
    public function run(){
        echo "Running\n";
    }
    public function dribblr(){
        echo "Dribbling\n";
    }
    public function pass(){
        echo "Passing\n";
    }
}
    //类到对象的实例化
    //类的实例化为对象时使用关键字new,new之后紧跟类的名称和一对括号
    $jordan = new NbaPlayer("Jordan","198cm","98kg","Bull");   
    //对象中的属性成员可以通过"->"符号来访问
    echo $jordan->name."\n";
    //对象中的成员方法可以通过"->"符号来访问
    $jordan->dribble();
    $jordan->run();
    //每一次用new实例化对象的时候,都会用类名后面的参数列表调用构造函数
    $james = new NbaPlayer("James","203cm","120kg","Heat")
    echo $james->name."\n";
    //对象的引用用于访问对象的属性和方法,$james,$james1和$james2都是对象的引用
    //$james和$james1是对象的两个独立引用
    //$james2是$james的影子,使用对象的同一个引用,任何一个赋值为null相当于删除了同一个引用
    $james1 = $james;
    $james2 = &$james
    $james = null;
    echo "from now on James will not be used.\n"
?>


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.