zoukankan      html  css  js  c++  java
  • php面向对象程序设计入门教程:CLASS,OBJ

    1.面向对象与面向过程的对比

    面向过程:以事件为中心,分几个步骤去完成。不可扩展,html与php不分离

    面向对象:自己作为指挥者,指挥别人去做。具有可扩展性,html和php代码分离

    2.什么是对象?

    对象:自然间形形色色存在的可以看得见的东西(其实这个也不会很准确),[在代码中表现为]由代码执行出来的效果

    3.什么是面向对象?

    OOP(面向对象编程)是Object-oriented programming的缩写,具有灵活性,可维护性,能为程序员开启一扇大门

    软件工程的三个目标:1.重用性 2.灵活性 3.可扩展性

    面向对象编程的特点:①封装 ②继承 ③多态

    4.什么是类?

    具有属性和方法对象的抽象的描述

    5.类的定义

    定义角度:

    静态描述: 就是我们熟悉的变量

    动态描述(对象的功能):把动态描述写成函数,在对象中声明的函数叫做方法

    所有的类都是从属性 和方法 两个方面去声明,属性和方法都是类中的成员,属性我们又叫做对象的成员属性,方法又叫做对象的成员方法.

    成员属性:在类中直接声明的变量. 可以使用PHP中的标量类型和复合类型,所以也可以是其他类实例化的对象,在类中使用资源和空类型(null)没有意义.

    关于成员属性的初始值一般情况是不赋的,大多情况都是在实例化对象后再给相应的成员属性赋上初始值.

    成员方法:在对象中声明的函数叫做方法,

    上述的成员属性和成员方法和面向过程中的声明变量与函数一样,只不过多了一些关键字 public protected private等.

     
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    class Classname{
    //成员属性
    public $name;
    public $age;
    //成员方法
    public function __construct($name,$age){
    //方法体
    $this->name=$name;
    $this->age=$age;
    }
    public function method(){
    //方法体
    //return 返回值
    }

    6.类和对象的关系

    类的实例化就是对象.

     
    1
    2
    //实例化
    $mod = new Classname();

    "$变量名"是通过类创建一个对象的引用名称,后面通过这个引用来访问对象中的成员
    "new"表示要创建一个新的对象
    "类名称"表示新对象的类型
    "参数"指定了类的构造方法用于初始化对象的值
    如果类中没有定义构造方法,PHP会自动的创建一个不带参数的默认的构造方法.
    一个类可以实例化对个对象,每个对象彼此独立,互不影响,属性和方法不会共享,(如同一张玻璃杯设计图,可以按照这个图制造成千上万的玻璃杯,但是一个玻璃杯被打碎的时候,其他的可没有被打碎),也就是它们同属一个玻璃杯类.

    7.对象中成员的访问

    对象中成员的访问就两个 成员属性 成员方法

    对于成员属性也就两个操作:1:赋值操作 2.获取成员属性值的操作

     
    1
    2
    3
    4
    $引用名 new 类名称([参数列表]); //对象实例化
    $引用名->成员属性=值; //给成员属性赋值
    echo $引用名->成员属性; //获取成员属性的值
    $引用名->成员方法; //访问成员方法

    如果对象的成员不是静态的static,那么唯一的访问形式就是"对象引用名->属性"(没有$符号),和"对象引用名->方法名()".

    8.特殊的对象引用"$this"

    在对象的外部我门可以实例化对象,用对象的引用来访问对象的成员.但是在对象的内部要访问对象的成员时,怎么办?难道要在内部实例化,答案是否定的.这里要引入一个特殊的对象引用"$this".

    this代表本对象,在对象内部的成员方法中访问成员要使用this代表本对象,在对象内部的成员方法中访问成员要使用this->属性 和 $this->方法.只能在成员方法中使用

    9.构造方法和析构方法(魔术方法)

    构造方法:

    ①如果声明类的时候没有显示的声明它,类中都会默认存在一个没有参数列表并且内容为空的构造方法.如果显示的声明它,那么默认的构造方法将不会存在.

    ②当实例化一个对象时,会被自动调用一次,就是每使用new关键字实例化一个对象,就调用一次.不能主动的通过对象的引用去调用构造方法.

    ③通常用来对成员属性赋初始值.

    ④php5以前的版本必须要方法名和类名相同

    ⑤同一个类只能有一个构造方法

     
    1
    2
    3
    public function __construct(){
    //主体
    }

    析构方法:

    ①允许在小辉衣阁对象之前执行的一些特定操作(关闭文件,释放结果集)

    ②没有任何参数

    当堆内存中的对象失去他的访问引用时,就会被认为是垃圾对象,并进行回收.而析构方法正是在垃圾回收程序回收对象前调用的.

     
    1
    2
    3
    public function __destruct(){
    //方法体
    }
  • 相关阅读:
    小记---------sparkRDD的Transformation 和 Action 及案例 原理解释
    小记---------maxwell启动闪退问题
    小记---------spark组件与其他组件的比较 spark/mapreduce ;spark sql/hive ; spark streaming/storm
    kettle 创建作业发送邮件
    oracle查询表的结构
    ETL简介
    Oracle中分析函数
    谷歌浏览器快捷键
    Kettle入门
    Oracle基本知识
  • 原文地址:https://www.cnblogs.com/yuanscn/p/11238521.html
Copyright © 2011-2022 走看看