PHP中静态与抽象的概念

静态
//普通成员
//普通成员是属于对象的

//静态成员
//静态成员属于类的

类中的静态属性非常类似于函数的全局变量。类中的静态成员是不需要对象而使用类名来直接访问的。

//关键字:static
//self关键字:在类里面代表该类(代表自身)
//在静态方法里面不能调用普通成员
//在普通方法里面能够调用静态成员

/*class FenBi
{
 public $length; //粉笔的长度
 public static $color; //粉笔的颜色
 
 static function show()
 {
  echo "粉笔颜色是:".self::$color;
 }
 
 function XianShi()
 {
  echo "显示:".self::$color;
 }
}

$f = new FenBi(); //先造一个对象
$f->length; //用对象去调用普通成员

FenBi::$color = "红色"; //使用类名调用静态成员
FenBi::show();            //使用类名调用静态方法
$f->XianShi();*/

抽象
//抽象类:关键字abstract
//特点:不能被实例化,只能被继承
//目的:为了派生子类,控制子类

/*abstract class Dog
{
 public $name;
 
 function Jiao()
 {
  echo "汪汪";
 }
}

class JinMao extends Dog
{
 
}*/

//$d = new Dog();

//接口
//极度抽象的类
//接口里面不能包含成员变量,只能包含成员方法
//成员方法可以没有函数体
//接口关键字:interface
//实现接口的类,必须实现接口里面的所有方法

interface IUSB
{
 function read(); //读的方法
 function write(); //写的方法
}

//鼠标的驱动类
class Mouse implements IUSB
{
 function read()
 {
  echo "鼠标点击了";
 }
 function write()
 {
  echo "给鼠标一个指令";
 }
}

//键盘的驱动类
class JianPan implements IUSB
{
 function read()
 {
  echo "键盘输入了内容";
 }
 function write()
 {
  echo "给键盘指令";
 }
}

$m = new Mouse();
$m->write();

$j = new JianPan();
$j->read();

//接口:API

API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

时间: 2024-08-07 16:12:29

PHP中静态与抽象的概念的相关文章

C语言中静态库和动态库笔记

库 库,故名思议,是存放东西的地方,其中存放的东西可以被多个人公用. 程序中借用库的概念,描述将代码进行抽取,这种代码被大多数程序使用, 其过程具有一定的模块化.封装.抽象的特征. 按照库的使用方式, 静态库 和 动态库. 不管怎样方式使用, 首先库的概念体现出代码逻辑上公共抽象. 有篇博文,做了介绍, 并有例子, 本文纯粹学习,借鉴了其中的例子. http://www.cnblogs.com/chio/archive/2007/11/03/948480.html 静态库 静态库,编译应用程序的

java中静态属性和和静态方法的继承问题 以及多态的实质

首先结论是:java中静态属性和和静态方法可以被继承,但是没有被重写(overwrite)而是被隐藏. 静态方法和属性是属于类的,调用的时候直接通过类名.方法名完成的,不需继承机制就可以调用如果子类里面定义了静态方法和属性,那么这时候父类的静态方法 或属性称之为“隐藏”,你如果想要调用父类的静态方法和属性,直接通过父类名.方法名或变量名完成,至于是否继承一说,子类是有继承静态方法和属性,但是 跟实例方法和属性不太一样,存在“隐藏”的这种情况. 多态之所以能够实现是依赖于 继承 接口和 重写 .重

C#中静态变量和 静态方法的作用

1.静态变量 在C#程序中,没有全局变量的概念,这意味着所有的成员变量只有该类的实例才能操作这些数据,这起到了“信息隐藏”的作用.但有些时候,这样做却不是个明智的选择. 假设我们要定义一个图书类,要求该类能保存图书的数量,即每增加一本图书(定义一个实例),图书的数量应该加1.如果没有静态变量,我们需要将图书的数量保存在每本图书(实例)里,然而,这样的变量要在不同图书(实例)里重复存储,图书(实例)数量少的话,我们还能接受,如果图书(实例)数量较多的话,比如成千上万,我们无法想象这要造成多少资源(

C++类中静态变量和普通变量的区别

静态变量: 1.静态变量会被编到程序的exe里面,从程序启动到结束,它一直存在: 2.静态变量的初始化值为0: 3.全局变量默认是静态变量: 4.在类中的函数变量前面加了static的也是静态变量,只不过被语言限定在只能在函数内部使用: 5.在有MFC对话框的程序了,如果一个变量和对话框绑定,那么该变量就不能声明为静态变量,函数也是一样的,因为声明为静态变量后不能随时接受对话框内的值,    主要是因为静态变量的值设置后是不能被修改的: 6.可以使用类名+静态成员名访问此静态成员,因为静态成员存

编写高质量代码改善C#程序的157个建议——建议112:将现实世界中的对象抽象为类,将可复用对象圈起来就是命名空间

建议112:将现实世界中的对象抽象为类,将可复用对象圈起来就是命名空间 在我们身边的世界中,对象是什么?对象就是事物,俗称“东西”.那么,什么东西算得上是一个对象呢?对象有属性.有行为.以动物为例,比如猫(Cat).Cat可以有Name,这就是属性:Cat有一个恶习ScratchSofa(挠沙发),这就是行为.我们把这些属性和行为结合起来,就称为一个类型: class Cat { public string Name { get; set; } public void ScratchSofa()

WPF中静态引用资源与动态引用资源的区别

WPF中静态引用资源与动态引用资源的区别 WPF中引用资源分为静态引用与动态引用,两者的区别在哪里呢?我们通过一个小的例子来理解. 点击“Update”按钮,第2个按钮的文字会变成“更上一层楼”,而第1个按钮的文字没有变化. 原因是第1个按钮文字用的是静态引用资源,而第2个按钮文字用的是动态引用资源. 前台代码: <Window x:Class="PersonalLearning.StaticDynamicResourceDemo"        xmlns="http

Java中静态变量与静态方法的继承

class A { static int a = 1; static int b = 2; public static void printA() { System.out.println(a); } public static void printB() { System.out.println(b); } } class B extends A { static int a = 3; static int b = 4; public static void printB() { // 如果B

python中基于descriptor的一些概念(上)

@python中基于descriptor的一些概念(上) python中基于descriptor的一些概念(上) 1. 前言 2. 新式类与经典类 2.1 内置的object对象 2.2 类的方法 2.2.1 静态方法 2.2.2 类方法 2.3 新式类(new-style class) 2.3.1 __init__方法 2.3.2 __new__静态方法 2.4. 新式类的实例 2.4.1 Property 2.4.2 __slots__属性 2.4.3 __getattribute__方法

java中静态代码块的用法 static用法详解

(一)java 静态代码块 静态方法区别一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序来调用的时候,需要使用静态方法,这种代码是被动执行的. 静态方法在类加载的时候 就已经加载 可以用类名直接调用比如main方法就必须是静态的 这是程序入口两者的区别就是:静态代码块是自动执行的;静态方法是被调用的时候才执行的.静态方法(1)在Java里,可以定义一个不需要创建对象的方法,这种方法就是