php课程---面向对象

面向对象:
一:定义类

class Dog
{
    var $name;
    var $age;
    var $pinzhong;

    function Jiao()
    {
        echo "{$this->name}在叫";
    }
}

二:实例化对象
    $dog = new Dog();
    调用对象的成员:
    $dog->name = "旺财";
        调用成员方法:
    $dog->Jiao();

三、$this关键字(放在类里面就代表这个类实例化出来的一个对象)
$this->$name;this代表该对象,如果要在成员方法中调用成员变量,一定要使用$this找出该成员变量。
  完整代码:

 class Dog
   {
    var $name;
    var $age;
    var $pinzhong;

    function Jiao()
    {
       echo "{$this->name}在叫";      //this代表的是当前这个对象
    }
   }

    $dog = new Dog();

    $dog->name = "旺财";
    $dog->age = 10;
    $dog->pinzhong = "哈士奇";

    $dog->Jiao()  //调用成员方法

四、构造函数:(构造函数是对类进行初始化的,php里面没有函数的重载)
1.执行时间特殊
2.写法特殊
   代码如下:

class Dog
   {
    var $name;   //写访问修饰符时,var就不用写了
    var $age;
    var $pinzhong;

    function __construct($n,$a,$p)   //构造函数的写法,注意是两个下划线相连,前面必须空格
    {
           $this->name = $n;
        $this->age = $a;
        $this->pinzhong = $p;
    }
    function Jiao()
    {
       echo "{$this->name}在叫";      //this代表的是当前这个对象
    }
   }

    $dog = new Dog("旺财",10,"金毛");
    $dog->Jiao()  //调用成员方法

五、析构函数(不能有任何参数)

function __destruct()
   {
       echo "拜拜";
   }

六、封装:
将类里面的成员变量加一个private修饰符变成私有的,目的是为了保护类里面的成员不被外界随意访问,从而确保类的安全性。如果将变量设置为私有,如何去访问:
    1.自己写函数get函数set函数,然后来对变量赋值和取值
    2.用系统自带的__get()函数和__set()函数来实现类里面的变量赋值取值

  function __set($name,$value)
        {
            $this->$name = $value;
        }
    function __get($name)
        {
            return $this->$name;
        }

完整代码:

 class Dog
   {
    private $name;   //写访问修饰符时,var就不用写了
    private $age;
    private $pinzhong;

    function __set($name,$value)
    {
        $this->$name = $value;
    }
     function __get($age)
    {
        return $this->$age;
    }
    function __construct($n,$a,$p)
    {
           $this->name = $n;
        $this->age = $a;
        $this->pinzhong = $p;
    }
    function Jiao()
    {
       echo "{$this->name}在叫,它{$this->age}岁了";
    }
    function __destruct()
   {
       echo "拜拜";
   }
   }

    $dog = new Dog("旺财",10,"金毛");
    $dog->name = "小强";
    $dog->age = 3;
    echo $dog->age;

    $dog->Jiao()  //调用成员方法

七:继承
    继承一般是单继承:一个儿子只能有一个父亲
    子类可以继承父类的所有成员
        
        class HashiQi extends Dog  //dog是父类 HashiQi是子类
    {
        
    }

子类可以对父类的成员方法进行重写:(函数名一样),如果要在子类方法中调用父类的方法,用parent::Jiao();

 function Jiao()
        {
            parent::Jiao();  //parent代表父类  ::代表调用方法,用类名调用
            echo "hello";
        }

完整代码:

 class Dog
   {
    private $name;   //写访问修饰符时,var就不用写了
    private $age;
    private $pinzhong;

    function __set($name,$value)
    {
        $this->$name = $value;
    }
     function __get($age)
    {
        return $this->$age;
    }
    function __construct($n,$a,$p)
    {
           $this->name = $n;
        $this->age = $a;
        $this->pinzhong = $p;
    }
    function Jiao()
    {
       echo "{$this->name}在叫,它{$this->age}岁了";
    }
    function __destruct()
   {
       echo "拜拜";
   }
   }
    class HashiQi extends Dog  //dog是父类 HashiQi是子类
    {
        function Jiao()
        {
            parent::Jiao();  //parent代表父类  ::代表调用方法,用类名调用
            echo "hello";
        }
    }
    $dog = new HashiQi("旺财",10,"金毛");
    $dog->name = "小强";
    $dog->age = 3;
    echo $dog->age;

    $dog->Jiao()  //调用成员方法

final关键字可以定义该类为最终类,不可被继承
    
    静态:
    关键字:static ,如果成员声明了为静态的,那么该成员是属于该类的,不是属于对象的
    如何调用静态的成员:
    HaShiQi::$height = 10;
    HaShiQi::Gao();
    用类名加双冒号调用类的静态成员

时间: 2025-01-06 10:37:21

php课程---面向对象的相关文章

{key}面向对象程序设计-C++ polymorphism 【第十三次上课笔记】

Peronal Link: http://segmentfault.com/a/1190000002464822 这节课讲了本门课程 面向对象程序设计中最为重要的一个部分 - 多态 1 /************************************************************************* 2 > File Name: polymorphism.cpp 3 > Author: Jeremy Wu 4 > Created Time: Mon 25

用我们自己的话来扯一下“面向对象” 1

           首先 我们需要我们需要告诉自己面向对象很简单,就像告诉自己玩英雄联盟送‘人头’一样,就是一些不经意的行    为,但是如果我们在写代码:)的时候把这种不经意行为变成经常性行为就可以很快学会了最主要还是熟练,但是我这里并不    是让你在游戏送人头啧啧.            好了回来了其实面向对象就是一种概念,一种代码的格式,就像我们开始写css样式一样,一开始和HTML混这些,后来因为不方面改用外部链接法 一样,我们从初学者到精通者是经验在提高,面向对象也是,我们开始用面

再见,大一上;大一下,我来了

不知不觉,一个学期就这样过去了,回首这个学期,收获还是颇丰富. 首先,在学习方面,英语仍是一如既往引以为傲的科目,在三级考试中取得了较为满意的成绩:高数也还差强人意,完成了班导交给我的任务,一分不多,一分不少:然而不太满意的有两块,一块是线代,69分,愧对刷了3天的题,还有一块是专业课—c语言,前期由于学生工作忙起来无暇去敲代码,导致2小时只能打一题的尴尬,一般用Dec++来打代码,一般都是用指针加循环解决问题,手段很单一,后来考试前期,赶夜车加急打了两周的代码,瞬间觉得对代码熟悉起来,后来考试

我的简历

作为一名应届毕业生,得是担心毕业后去往何处了~ 最近同学朋友经常的问题也是,毕业后去哪啊?说实在的,我不大想去空气不好的大城市,即使那边的IT环境很好,我比较想留在惠州,这里有山有水有运动场地哈哈,所以这一年的努力,是在创建留在惠州的条件.我知道这很难,所以两手准备,找个积极向上的部队一起战斗也是不错滴. 要找一只好部队,也是不容易,首先要做一份简历先哈哈,这方面没什么经验,贴出我的简历,大家帮忙看看,或者觉得合适就收了我呗-- 个人信息 姓名: 陈文哲 证件号码:   手机:   电子邮箱:

近年IT培训蓬勃发展,这行业谁不敢恭维

前天晚上,一位同事在微信上发给我一篇文章,<我前妻的故事:一个初中肄业生从月薪800到年薪40万的奋斗>,是财经内参转载的.她问我,这是不是*鸟的广告软文,一个初中未毕业的洗头小妹,经过IT培训逆袭职场,走上人生巅峰. 我说,还真不是.我关注tinyfool比较早,他公众号这篇文章一发出来,我就看到了.实际上,在这篇文章发表前,他在几篇文章和一些演讲中反复提到这个故事.只是在这篇长文里,把这个故事做了一个完整的叙述.tinyfool是一个性情中人,在哪里培训也写出来了. 是的,在IT培训这个行

java入门经验分享——记面向对象先导课程学习感想

选择在暑期学习面向对象先导课程的初衷是为大二下学期面向对象课程做一些铺垫,接触入门java语言.在接触java的过程中,就编程语言的学习方法而言,我从刚入学时的手慌脚乱四处寻求帮助到现在慢慢养成了自己不断寻找困难解决方法的习惯,感觉自己的另一种自学能力--一种计算机工科的实践能力得到了培养,这种自学能力跟学习基础课程理论知识的感觉完全不同,这种需要在实践和动手中得到经验和知识的自学方法与以前理解现成抽象理论概念的自学方法可以说是完全不同了.作为一个偏好理论研究的理科女生,动手实践能力在此之前几乎

C#面向对象课程 类与对象,方法重载,类的静态成员,命名空间和类库12月22日

一.类是面向对象课程的基本单元. 在类的里面可以直接定义字段(成员变量),也可以定义方法(函数). 例如: 这里的public是修饰符,修饰符的作用是用来限定它的可访问范围. 两个同范围(同一个类中,或者父子类中)两个同名但参数类型不同或者参数个数不同的方法互相间构成重载关系. 两个构成重载关系的方法(函数)必须满足以下条件: (1)方法(函数)名相同: (2)参数类型不同,或参数个数不同.这里需要注意的是,函数返回值类型的不同不是函数重载的判断条件. 二.静态成员 属性.方法和字段等成员是对象

JAVA课程实验报告 实验二 JAVA面向对象程序设计

课程:Java程序设计  班级:1352  姓名:黄伟业  学号:20135315 成绩:             指导教师:娄嘉鹏    实验日期:2015.5.7 实验密级:         预习程度:         实验时间:15:50--20:50 仪器组次:         必修/选修: 选修            实验序号:2 实验目的: 1.掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装.继承.多态 3. 初步掌握UML建模 4. 熟悉S.O.L.I.D原则 5. 了

C++面向对象高级开发课程(第三周)

一,类与类之间的关系:继承(Inheritance).复合(Composition).委托(Delegation). 二,复合:表示 is-a ,该设计思想可以参照C语言的 struct . 1. 例子:源自STL中queue的源代码. 1 template <class T, class Sequence = deque<T> > 2 class queue { 3 ... 4 protected: 5 Sequence c; // 底层容器 6 public: 7 // 以下完