zoukankan      html  css  js  c++  java
  • 面向对象

      1、概念:面向对象就是将要处理的问题抽象为对象,然后通过对象的属性和行为来解决对象的实际问题;

      2、特点

          ①封装性:将一个类的使用和实现分开,只保留有限的接口(方法)与外部联系。对于使用该类的开发人员只需关注怎么去使用该类,而不用关注其实现的细节。这样做可以让开发人员将精力集中起来专注别的事情,同时避免了程序之间相互依赖而带来的不便;

          类的封装通过关键字public、private、protected、static、和final实现的;

            public:公共成员关键字,可以再程序的任何地方被其他类和对象调用。子类可以继承和使用父类中所有的公共成员

            private:私有成员关键字,只能在本类的内部被调用和修改。子类和类外部都不可访问

            protected:保护成员关键字,可以在本类子类中被调用,其他地方则不可以被调用

            static:静态成员关键字,该关键字修饰的属性和方法不需要对象,使用   类名::$静态属性名/静态方法名(参数1,...)  就可以直接访问。

          ②继承性:子类自动继承父类中的属性和方法,并可以重写或添加新的属性和方法。继承简化了对象和类的创建,增加了代码的可重用性;

          ③多态性:同一个类的不同对象,使用同一个方法可以获得不同的结果。多态性增加了软件的灵活性和重用性。

      3、对象进行实例化后的产物;

      4、$this 操作符:表示对对象本身的引用

      5、“::”操作符:可以在没有任何实例的情况下访问类中的成员

            —— 语法格式:  关键字::变量名/常量名/方法名

               — 关键分类:①parent关键可以调用父类中的成员变量成员方法常量

                     ②self关键字:可以调用当前类中的静态成员常量

                     ③类名:可以调用本类中的变量常量方法

      6、构造方法: _ _construct()

          对象创建完成后第一个被对象自动调用的方法。

      7、不能被实例化的特殊的类:抽象类

          使用:只能作为其他类的父类使用。class 子类 extends 父类{   }

          语法格式:

    abstract class 抽象类名称{
           //抽象类的成员变量列表  
           abstract function 成员方法1(参数);
           abstract function 成员方法1(参数);
    }

          注意:抽象类至少要包含一个抽象方法;抽象类没有方法体,其功能只能在其子类中实现;

          应用场景:抽象类和抽象方法主要应用于复杂的层次关系中,这种层次关系要求每一个子类都包含并重写某些特定的方法

      8、不能被实例化的特殊的类:接口

         使用:接口与抽象类相同,不能进行实例化的操作,需要通过子类来实现。但是接口可以直接使用接口名称在接口外获取常量成员的值

            class 子类 implements 接口类1,接口类2{  }

         语法格式:

    interface 接口名称{
            const  常量名;                    //接口中成员只能是常量publicfunction 方法名();     //成员方法必须是抽象方法
    }

       9、面向对象常用的魔术方法:_ _call()、_ _toString()、_ _autoload()

            ①_ _call(): 当程序试图调用不存在不可见成员方法时,PHP会先调用_ _call()方法来存储方法名和参数。

                使用格式:

     public function _ _call($method,$parameter){
                 echo '如果方法不存在,则执行该方法<br>';
                 echo '方法名为:'.$method.'<br>';         //输出第一个参数,该类不存在的方法名      
                 echo '参数有:';
                 var_dump($parameter);                   //输出第二个参数,不存在的方法中传入的参数              
     }    

          ②_ _toString():当时用echo和print输出对象时,将对象转化为字符串。

             使用格式:

    class Person{
          public function _ _toString(){
               return "我是toString的方法体";  
          }      
    }
    $per = new Person();
    echo $per;          //输出  “我是toString的方法体”

           ③_ _autoload():自动实例化需要使用的类。

          

  • 相关阅读:
    springboot整合log4j2
    document解析html
    关于字符串读写乱码的解决方法浅谈
    BOM知识整理
    es6的Map()构造函数
    es6的Set()构造函数
    关于node的path模块
    java总结(方法与对象)
    webpack3.0+总结
    java总结(二)(运算符)
  • 原文地址:https://www.cnblogs.com/jytblog/p/7286302.html
Copyright © 2011-2022 走看看