• 类与对象


      在面向对象的编程语言中。类是对对象的抽象。在类中能够定义对象的属性和方法的描写叙述。对象是类的实例,类仅仅有被实例化后才干被使用。

    定义类

      在PHP中,使用关键字class加类名的方式定义类,然后用大括号包过类体。在类体中定义类的属性和方法。

    类的格式例如以下:

    <?php
    class MyClass {
        private $var;
        public function fun()
        {
           // 。

    。。。 } }

      MyClass为类的名称,两个大括号里间的部分就是类的所有内容。

    在PHP5曾经的版本号中。使用关键字var声明类的属性。而在PHP5(包含5)以后的版本号中,引入了private、protected和public关键字,分别用来定义私有、保护和共同拥有成员,这就能够使程序更加安全。类和定义成员函数的方法与定义普通函数的方法同样,并且还能够用关键字private、protected和public对成员函数的訪问权限进行限定。
    注意:
      一个类,即一对大括号之间的所有内容都要在一个代码段中,即一个"<?php ..... ?>"之间,不能切割成多块儿,比如:

    <?php 
    class MyClass{
        //..
    ?>
    <?

    php ../ } ?>

    这样的格式是不对的

    实例化类

      对类定义完毕后并不能直接使用。还须要对类进行实例化,即声明对象。PHP中使用关键字new来声明一个对象。格式例如以下:
      对象名 = new 类名(var0, var1, ….varn)
      在对象进行实例化时。须要为类的构造方法指定參数。


    比如:
      定义一个学生类(Student类),在类体中定义成员变量$name$age分别用来表示学生姓名和年龄;__construct()为类的构造方法。用于为类的成员变量初始化;最后定义方法getNameAndAge()来输出学生信息

    <?php
    
    class Student
    {
        private $name;
        private $age;
    
        public function __construct($name, $age)//定义构造方法
        {
            $this->name = $name;
            $this->age = $age;
        }
    
        public function getNameAndAge()
        {
            return "学生" . $this->name . "今年" . $this->age . "周岁";
        }
    }
    
    $student = new Student("小明", 15);
    echo $student->getNameAndAge();

    执行结果为:
    学生小明今年15周岁

    使用对象

      对类定义完毕后,须要将其进行实例化后才干使用,对象能够调用类中的公有属性和公有方法,即被关键字public修饰的属性和方法。

    调用方法例如以下:
    对象名->属性; //调用类的属性
    对象名->方法; //调用类的方法
      对上述代码中能够发现,PHP调用类的属性和方法使用符号”->”而非”.”,与其它的一些语言不同,刚開始学习的人应该注意,不要混淆。
    比如:
      定义类BOOK,并在类中定义公有成员bookName代表书名,公有方法getBookName()用来获取图书名称。

    对Book类进行实例化后分别通过bookName属性和getBookName()方法在页面中输出图书名称。

    <?php
    
    Class Book
    {
        public $bookName;
    
        public function __construct($bookName)//定义构造方法
        {
            $this->bookName = $bookName;
        }
    
        public function getBookName()
        {
            return $this->bookName;
        }
    }
    
    $book = new Book("《PHP从入门到放弃》");
    echo $book->bookName;
    echo "<br>";
    echo $book->getBookName();

    执行结果为:
    《PHP从入门到放弃》
    《PHP从入门到放弃》
    注:假设将类体中的属性或方法声明为私有或保护的成员,再次执行本实例将提示信息错误。所以从上面的实例可知,PHP的属性仅仅能直接调用类的公有属性和公有方法。

    成员变量

      在类中所定义的变量成为成员变量(也可成为属性或字段)。

    成员变量用来保存信息数据,或与成员方法进行交互来实现某项功能。
    定义成员变量的格式一般为:
    变量声明符 成员变量名。


      说明:变量声明符能够使用public。private,protected,static和final中的随意一个。(有关这些的具体使用方法,小编正在更新,敬请期待)
      訪问成员变量和訪问成员方法是一样的。仅仅要把成员方法换成成员变量就可以,格式为:
    对象名->成员变量
    比如:
      在MyClass类中声明一个成员变量$class_name,接着为这个变量声明两个成员方法$setClassName()$getClassName()

    实例化MyClass类并为类的构造函数传递參数”Hello PHP”,最后输出结果

    <?php
    
    class MyClass
    {
        public $class_name;
    
        function setClassName($name)
        {
            $this->class_name = $name;
        }
    
        function getClassName(){
            return $this->class_name;
        }
    }
    
    $c_book = new MyClass();
    $c_book->setClassName("Hello PHP");
    echo $c_book->class_name.'<br>';
    echo $c_book->getClassName();

    执行结果为:
    Hello PHP
    Hello PHP

    成员函数

      在类体中所定义的函数称为成员函数或成员方法,主要是为了实现某项功能。在PHP4.x中定义成员函数的方法与定义普通函数的方法同样。而在PHP5.x中能够为成员方法设置权限修饰符,从而能够有效的提高代码的逻辑性和安全性。PHP5.x中定义类的成员函数的语法格式例如以下:
    訪问权限修饰符 function 成员函数名 (var0, var1, …, varn)
    {
    //函数体
    }
    比如:
      定义类MyClass并在类体中定义属性$name,定义公有方法setName()getName()分别用来为属性$name赋值和获取$name的值。代码例如以下:

    <?php
    
    Class MyClass
    {
        private $name;
    
        public function setName($name)
        {
            $this->name = $name;
        }
    
        public function getName()
        {
            return $this->name;
        }
    
    }
    $myClass = new MyClass();//对类进行实例化
    $myClass->setName("计算机");
    echo $myClass->getName();

    执行结果为:
    计算机


    纯手打,有关面向对象的具体解说。仍在持续更新。如有不到之处,望多多指正。

  • 相关阅读:
    MyBatis入门学习教程-优化MyBatis配置文件中的配置
    MyBatis入门学习教程-使用MyBatis对表执行CRUD操作
    MyBatis入门学习教程-MyBatis快速入门
    Apache Shiro 简单概念
    将 Shiro 作为应用的权限基础
    在 Web 项目中应用 Apache Shiro
    Shiro简单配置
    Shiro权限框架简单快速入门
    解决错误: Failed to load class "org.slf4j.impl.StaticLoggerBinder"
    解决Shiro注解无效的问题
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/8278306.html
Copyright © 2020-2023  润新知