1、关键字final
用来定义类和方法的一个重要关键字,当定义类的时候该类将不能被继承,
当用来定义方法的时候该方法将不能被重载
2、关键字static
用来定义类的静态属性或方法,可以在类未被实例化时使用,静态属性单独占
用内存而不会因创建多个对象时而导致同样的方法或者属性重复占用。(如果当前类被实例化100次,静态属性只会占用一份内存,而非静态属性则占用100份内存)
class class1{
 
   static $name;
   static function fun1(){
    ……//静态方法内部禁止出现非静态内容,如$this
   }
}静态成员的访问:
内部访问:self::静态成员
类外部访问: 类名称::静态成员
 
3、关键字self
用来用类访问当前类中的内容的关键字,类似与$this关键字,但$this是需要
类实例化以后才可以使用,self 可以直接访问当前类中的内部成员
self :: 类内部成员(属性或者方法)<=> 类名 :: 类内部成员(属性或者方法)
注意:因为没有实例化类访问内部属性或者方法是没有意义的,
           所以self一般用来访问类中的:静态成员,常量,或者其他定义内容
 
4、关键字const
用来定义类中的常量,类似PHP外部定义常量的关键字define();  Const只能
修饰类当中的成员属性!常量是不能改变的。
class class1{
    const NAME;
      function fun1(){
    ……
   }
}

1、建议大写常量
 
2、常量不使用$符号
测试代码:
<?php
/*class MyPc{
public $name='我的电脑';
final function power(){
echo $this->name."-电脑开机中……";
}
}
class Pc extends MyPc{
function power(){
echo MyPC::power().$this->name."-PC开机中……";
}
}
$obj= new Pc();
$obj->power();*/
final class MyPc{
const NAME='我的NAME';
static $name='我的电脑';
static function power(){
echo self::$name."-self访问静态属性……<br/>";
echo self::NAME."-self访问常量。。。";
}
}
echo MyPc::power()."<br/>";
echo MyPc::NAME;
?>

PHP面向对象学习四 类的关键字的更多相关文章

  1. python中的面向对象学习以及类的封装(这篇文章初学者一定要好好看)

    这篇文章对于初学者可以很有效的理解面对过程.面对对象 一.首先介绍一下面向过程和面向对象的比较: 面向过程 VS 面向对象 编程范式 编程是程序员用特定的语法+数据结构+算法组成的代码来告诉计算机如何 ...

  2. PHP面向对象学习-属性 类常量 类的自动加载 构造函数和析构函数 访问控制(可见性)

    在类的成员方法里面,可以用 ->(对象运算符):$this->property(其中 property 是该属性名)这种方式来访问非静态属性.静态属性则是用 ::(双冒号):self::$ ...

  3. python中的面向对象学习以及类的继承和继承顺序

    继承 首先编写一串关于类的代码行: __author__ = "Yanfeixu" # class People: 经典类不用加(object) class People(obje ...

  4. PHP面向对象学习五 类中接口的应用

    类中接口的应用 接口:一种成员属性全部为抽象的特殊抽象类,在程序中同为规范的作用   抽象类:1.类中至少有一个抽象方法.2.方法前需要加abstract 接口: 1.类中全部为抽象方法,抽象方法前不 ...

  5. PHP面向对象学习三 类的抽象方法和类

    一个类中至少有一个方法是抽象的,我们称之为抽象类. 所以如果定义抽象类首先定义抽象方法. 1.类中至少有一个抽象方法 2.抽象方法不允许有{ } 3.抽象方法前面必须要加abstract 抽象类的几个 ...

  6. python中的面向对象学习以及类的多态

    接下来类的第三个重要的特性:多态(一种接口,多种实现) 多态性(polymorphisn)是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特 ...

  7. python学习笔记(七):面向对象编程、类

    一.面向对象编程 面向对象--Object Oriented Programming,简称oop,是一种程序设计思想.在说面向对象之前,先说一下什么是编程范式,编程范式你按照什么方式来去编程,去实现一 ...

  8. gRPC学习之四:实战四类服务方法

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  9. 初探swift语言的学习笔记四(类对象,函数)

    作者:fengsh998 原文地址:http://blog.csdn.net/fengsh998/article/details/29606137 转载请注明出处 假设认为文章对你有所帮助,请通过留言 ...

随机推荐

  1. 【mysql中myisam和innodb的区别】

    单击进入源网页 要点摘要: 1.查看mysql存储引擎的状态mysql> show engines; 2.查看mysql默认的存储引擎mysql> show variables like ...

  2. 终于看完<LEARNING SQL>第二版,立此存照

  3. poj 1005:I Think I Need a Houseboat(水题,模拟)

    I Think I Need a Houseboat Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 85149   Acce ...

  4. myeclipse报错: java compiler level does not match the version of the installed java project facet

    在升级到myeclipse 9.0正式版后,很无耐地出发现了一个error级别的错误,虽然没在代码中,但是看着让人很不舒服.第一反应就是到网上搜索解决之道,结果,网站说在工程的属性中去找个叫啥&quo ...

  5. POJ 1984 Navigation Nightmare 带全并查集

    Navigation Nightmare   Description Farmer John's pastoral neighborhood has N farms (2 <= N <= ...

  6. POJ 3140 Contestants Division 树形DP

    Contestants Division   Description In the new ACM-ICPC Regional Contest, a special monitoring and su ...

  7. Get open Popups

    public IEnumerable<Popup> GetOpenPopups() { return PresentationSource.CurrentSources.OfType< ...

  8. spfa求最长路

    http://poj.org/problem?id=1932 spfa求最长路,判断dist[n] > 0,需要注意的是有正环存在,如果有环存在,那么就要判断这个环上的某一点是否能够到达n点,如 ...

  9. loj 1044(dp+记忆化搜索)

    题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=26764 思路:dp[pos]表示0-pos这段字符串最少分割的回文 ...

  10. 【转】Kylin的cube模型

    转自:http://www.cnblogs.com/en-heng/p/5239311.html 1. 数据仓库的相关概念 OLAP 大部分数据库系统的主要任务是执行联机事务处理和查询处理,这种处理被 ...