PHP面向对象基本概念 类与对象 静态属性 构造/析构方法

1.传统的面向过程和现代面向对象
  传统面向过程:是指把将要完成的工作分为若干个步骤一步一步的完成
  现代面向对象:是指将要完成的工作拆分为一个一个的对象的任务(功能)每个对象独自完成自己的任务
 可以理解为: 一个大扫除 面向过程就是一个人干完大扫除 面向对象就是 一个人扫地 一个人拖地
2.面向对象的基本概念
  三大特性:封装 继承 多态
  类与对象:
          张三是一个对象,李四是一个对象 他们都隶属于人这个类
         类:描述某一些具有共同特征的物体的概念
         对象:是指一个具体的物体,该物体隶属于某个类别
         通常,对象离不开类,没有类就没有对象  没有对象可以有类
             class Human{   //定义一个类 class是关键字
                    //类中有一些属性(就是变量)
                   var $name = ‘张三‘;
                   var $sex = ‘男‘;
                   var $age = ‘20‘;
                    //类中与一些方法(就是函数)
                     function show(){
                              echo ‘姓名:‘.$this->name.‘;性别:‘.$this->sex.‘;年龄:‘.$this->age;
             }
                      const PI = 3.14  //类中有一些常亮(类常亮)    
       }  
    类中的属性:
       定义形式(var是public的别名):
         var $v1; //可以定义不赋值
         var $v2 = 2; //定义的同时赋值 值不能是变量和计算表达式
         public $v1;
         public $2 = 2;
       使用形式:
         $对象->属性名    //属性名前面没有$符号
    创建类的对象:
     //调用
     1.对象名 = new 类名(Human)();
     2.可变类名
        变量名($name)= "类"
        对象名($lisi) = new 变量名($name)();
     3.对象名 = new self;只能在类的内部使用 指的是本身
        function cself(){
           return new self
         }
        例如:$lisi = new Human();
                  $zhangsan =  $lisi->cself();
                  他俩是相等的
     4.对象名1 = new 类名() 对象名2 = new 对象名1;
    对象的传值:
       值传递:复制数据 相互独立
       引用传递: 复制的是关系 一个改变另一个也改变
       关键字 &;
   一般方法:
       定义是一样的  使用是
       使用也是   ->
       访问修饰符 不写就是public
       $this 关键字 是一个伪对象 代表当前所属类的当前对象
          对象不一样 显示的内容也是不一样的
  系统函数:
      获取某个对象的 类名  结果只是一个类名字符串
      对象名 = new 类名() get_class(对象名)的结果就是类名
   静态属性:
     关键字 static
     static  $v1 = 10;
     用法:类::属性名;
   静态方法:
     不能存在$this 不能存在类的东西
   构造方法:
      关键字 __construct();
      如果你不写 就是调用  function ____construct(){
}
      不能是静态方法
      使用$this来赋值
   析构方法:
     销毁对象时自动调用 php代码执行结束会自动销毁对象 可用析构方法查看
     不能调用  自己执行  不能有形参
     手动销毁unset($p1);

原文地址:https://www.cnblogs.com/xzz123-/p/9142510.html

时间: 2024-11-12 15:25:54

PHP面向对象基本概念 类与对象 静态属性 构造/析构方法的相关文章

Objective-C语言介绍 、 Objc与C语言 、 面向对象编程 、 类和对象 、 属性和方法 、 属性和实例变量

Objective-C语言介绍 . Objc与C语言 . 面向对象编程 . 类和对象 . 属性和方法 . 属性和实例变量 1 第一个OC控制台程序 1.1 问题 Xcode是苹果公司向开发人员提供的集成开发环境(非开源),用于开发Mac OS X,iOS的应用程序.其运行于苹果公司的Mac操作系统下. 本案例要求使用集成开发工具Xcode编写OC的HelloWorld程序,在Xcode的控制台中, 1.2 方案 首先,启动集成开发工具Xcode. 然后,创建OC语言的工程. 最后,运行所创建的工

Python 2019/7/24 面向对象概念 类和对象 对象初始化__init__ 绑定与非绑定

面向对象 (Object Oriented Programming,简称OOP) 1.什么是面向对象:面向对象编程是一种思想,它指导程序员如何编写出更好的程序.它的核心是对象,此时程序员从操作者变成了指挥者. 2.为什么使用面向对象编程:当今时代背景下,通常应用程序对扩展性和维护性要求都是非常高的,为什么?想想qq,微信,是不是不断的在添加新功能?,也就是说一款应用程序诞生后,都需要不断的更新维护. 3.面向对象优缺点: 优点:拓展性  灵活性 重用性     缺点: 程序的复杂度提高了   无

java面向对象编程(1)-类与对象

1.问题的提出      张老太养了两只猫猫:一只名字叫小白,今年3岁,白色.还有一只叫小花,今年100岁,花色.请编写一个程序,当用户输入小猫的名字时,就显示该猫的名字,年龄,颜色.如果用户输入的小猫名错误,则显示张老太没有这只猫. //用前面学习过的知识写出代码如下: public class Demo107{ public static void main(String []args){ int a=49;//输入的名字49,50 int cat1age=3; //第一只猫 String

面向对象编程,类和对象

面向对象编程,类和对象 一.面向对象 1.什么是面向对象 ? 面向对象是一种编程思想,是前辈们总结出的经验,指导程序员如何编写出更好的程序 , 核心是对象,程序就是一系列对象的集合, 程序员负责调度控制这些对象来交互着完成任务. 2.几个案例 案例1:把大象装进冰箱 ? ? 面向过程: ? 1.打开冰箱 ? 2.装入大象 ? 3.关闭冰箱 ? 面向对象: ? 找个具备装大象的技能的对象 总结:在面向对象中程序员的角度发生改变,从具体的操作者变成了指挥者 强调:对象不是凭空产生的,需要我们自己设计

黑 马 程 序 员_视频学习总结<Objective-C>----01 面向对象思想、类和对象、面向对象方法

---------------------- ASP.Net+Unity开发..Net培训.期待与您交流! ---------------------- 一.面向对象 1. 面向对象和面向过程思想区别 OC为面向对象.C为面向过程.实质是解决问题的两种不同的思想.面向过程关注的是步骤,面向对象关注的是解决问题需要的对象. 2. 常用术语 面向过程:Procedure Oriented面向对象:Object Oriented 简称OO面向对象编程:Object OrientedProgrammin

python 类和对象的属性

python类和对象的属性分为类属性和对象属性两大类,类属性属于类,而对象属性属于对象. 1. 父类的对象属性会被子类的对象继承. 2. 父类的类属性会被子类继承,还是作为类属性,如果父类改变了类属性,父类和子类的类属性都会被改变. 3. 子类继承父类的类属性可以通过类名+属性名使用,但是一旦发生赋值,就会新定义一个相同名字的子类自己的类属性. 4. 类的对象可以通过对象名+属性名使用类属性,但是一旦发生赋值,就会新定义一个相同名字的对象属性,而且不会被继承. eg: >>> class

c++第五章-(类与对象、构造器和析构器)

1.构造器与结构体的区别:构造器多支持方法.其作用有申请内存,初始化变量. 在c++中构造器没有返回值:语法Class Name(); 2.析构器的作用:释放内存. 在c++中析构器没有返回值:语法~ClassName(); class Animal { public: std::string mouth; std::string name; void eat(); void sleep(); void drool(); Animal(std::string theName); }; class

JS面向对象篇一、理解对象及属性特性(属性描述符)

本文内容 1.理解对象; 2.ECMAScript有两种属性类型:数据属性和访问器属性(getter和setter函数); 3.数据属性的属性特性:[[Configurable]].[[Enumerable]].[[Writable]].[[value]]; 4.访问器属性的属性特性:[[Configurable]].[[Enumerable]].[[get]].[[set]]; 5.Object.defineProperty().Object.defineProperties().Object

javascript: object对象按属性排序的方法

javascript中在使用ajax和服务端交互时会遇到这样的场景,服务端返回json格式数据,前端展示时需要对数据进行某种排序,比如升序.降序. 可以利用 sort() 自定义排序规则来实现,例如返回的一段json数据,按照年龄升序排列. 1 var res = { 2 success: true, 3 result: [ 4 { 5 id: 1, 6 name: 'Jack', 7 age: 21 8 }, 9 { 10 id: 2, 11 name: 'Tom', 12 age: 23 1