• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

PHP中oop面向对象基础知识(一)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
                                                                                    OOP 基础知识汇总(一)

>>>你需要了解以下概念
面向对象&面向过程概念:

    面向过程:专注于解决一个问题的过程。面向过程的最大特点,是由一个一个的函数去解决处理这个问题的一系列过程。
    面向对象:专注于由哪个对象来处理一个问题。面向对象的最大特点,是有一个个具有属性和功能的类,从类中拿到对象,进而处理问题。


【面向对象】

 1、什么是类?
     具有相同属性(特征)和方法(行为)的一系列个体的集合,类是一个抽象的概念
 2、什么是对象?
     从类中,拿到的具有具体属性值的个体,称为对象。对象是一个具体的个体。
     例如:人类,都有姓名、性别、年龄,但是这些属性都不能有具体的值。
              张三,是人类中的一个对象!姓名张三、性别男、年龄23,将类的每一个属性具体赋值后,就成了张三这个对象。

 3、类和对象的关系?
    类是对象的抽象化!对象是类的具体化!
  类仅仅表明这类对象有哪些属性,但是不能有具体的值,所以类是抽象的。
  而对象,是将类的所有属性赋值后,产生的具体的个体,所有对象是具体的。

类的声明与实例化:  

1、如何声明一个类:

     class 类名{

类内部调用属性和方法:
  $this -> 属性名;

构造函数:
1、什么是构造函数?
   构造函数是类中的一个特殊函数,当我们使用new关键字实例化对象时,相当于调用了类的构造函数;
2、构造函数有什么作用?
     实例化对象时,自动调用,用于给对象的属性赋初值!
3、构造函数的写法?
    ① 构造函数名,必须与类同名
    [public] function Person($name){
        $this -> name = $name;
    }
    ② 使用魔术方法__construct
        [public] function __construct($name=""){
        $this -> name = $name;
    }

 4、构造函数注意事项:

   ① 第一种写法,构造函数名必须与类同名!!!!!!
   ② 如果一个类没有手写构造函数,则系统默认会有一个空参构造,因此可以使用new Person();
       如果我们写了带参数的构造函数,则将不会再有空参构造,也就是不能直接使用new Person(); Person后面的()中的参数列表,必须符合构造函数的要求!!!
   ③ 如果两种构造函数同时存在,将使用__construct。


 5、析构函数:__destruct():
     ① 析构函数在对象被销毁释放之前自动调用!
     ② 析构函数不能带有任何的参数
     ③ 析构函数常用于对象使用完以后,释放资源、关闭资源等!

6、魔术方法:
     PHP中,给我们提供一系列用__开头的函数,这些函数无需自己手动调用,会在合适的时机自动调用,这类函数称为魔术函数。
    例如:function __construct(){} 在类new一个对象时自动调用
    function __destruct(){} 在对象被销毁时自动调用
   我们要求,除了魔术方法之外,自定义的函数与方法不能使用__开头。


    最后,一般对于功能比较复杂的类,我们会单独的写到一个类文件中。
    类文件的命名,统一小写,使用“类名小写.class.php”的方式命名。
    在其他文件中使用这个类时,可以用include导入这个.class.php文件

封装的基本概念

 1、什么是封装?
通过访问修饰符,将类中不需要外部访问的属性和方法进行私有化处理,以实现访问控制。
 注意:是实现访问控制,而不是拒绝访问。 也就是说,我们私有化属性之后,需要提供对应的方法,让用户通过我们提供的方法处理属性。

 2、封装的作用?
   ① 使用者只关心类能够提供的功能,而不必关心功能实现的细节!(封装方法)
   ② 对用户的数据进行控制,防止设置不合法数据,控制返回给用户的数据(属性封装+set/get方法)
 3、实现封装操作?
   ① 方法的封装
     对于一些只在类内部使用的方法,而不像对外部提供使用。那么,这样的方法我们可以使用private进行私有化处理。
    private function formatName(){} //这个方法仅仅能在类内部使用$this调用
    function showName(){
      $this -> formatName();
          }

② 属性的封装+set/get方法  为了控制属性的设置以及读取,可以将属性进行私有化处理,并要求用户通过我们提供的set/get方法进行设置

未完待续   》》》》》》

 

 

 

  


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
php隐藏WEBSHELL技巧发布时间:2022-07-10
下一篇:
PHP字符串操作入门教程发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap