php面向对象常用概念

类:对于某类事物的以种抽象,他包含事物的形态、行为

对象:是类的实例化,人类(亚洲人对象) 狗类(金毛)

成员变量:对象的属性特征

成员函数:对象的某种行为

构造函数:主要用来创建对象时,初始化对象,为对象的成员变量赋初始值,意味着在new对象时用到该函数,该函数需要定义在类中

    格式:__(两个下划线)construct(参数)

测试代码:

<?php

/**

*

*/

class site

{

var $name;

var $age;

function __construct($parameter1,$parameter2)//构造函数

{

$this->name=$parameter1;

$this->age=$parameter2;

}

function setName($para)

{

$this->name=$para;

}

function printName()

{

echo $this->name;

}

function setAge($para)

{

$this->age=$para;

}

function printAge()

{

echo $this->age;

}

}

$st1=new site("shayan","cycycd");

$st1->printName();

$st1->printAge();

$st2=new site("tom","bob");

$st2->setName("peter");

$st2->printName();

?>

析构函数:和构造函数相反,当对象使用玩之后,会自动执行析构函数把对象销毁

格式:__destruct(){}

测试代码:

<?php

/**

*

*/

class myclass{

function __construct()

{

print "构造函数\n";

echo "此处调用__construct\n";

$this->name="myclass";

}

function __destruct(){

echo "析构函数\n";

echo "此处调用__destruct\n";

print "销毁".$this->name."\n";

}

}

$obj=new myclass;

echo $obj->name."\n";

?>

析构函数在整段代码执行完成后才会调用,

类的定义:

Class classname{定义类的变量和函数}

继承:在php中可以使用extends继承一个列,不能继承多个(使用其他类中的变量和函数,这个类也叫做父类)

A{}

Class B extends A{},A是B的父类,B是A的子类,B可以使用A中的变量和函数

<?php

/**

*

*/

class site

{

var $name;

var $age;

function __construct($parameter1,$parameter2)//构造函数

{

$this->name=$parameter1;

$this->age=$parameter2;

}

function setName($para)

{

$this->name=$para;

}

function printName()

{

echo $this->name;

}

function setAge($para)

{

$this->age=$para;

}

function printAge()

{

echo $this->age;

}

}

class child_site extends site

{

var $grade;

function setGra($para){

$this->grade=$para;

}

function getGar()

{

echo $this->grade;

}

}

$csite=new child_site("父类是site\n","我是子类\n");

$csite->printName();

$csite->printAge();

$csite->setGra("我是子类方法\n");

$csite->getGar();

?>

方法重写:覆盖,也就是说父类中方法不能满足自身的需要,重新去定义方法

访问控制:对定义的类中属性和方法进行访问控制,通过public/protected/private实现

Public:公有的

Protected:

Private:

创建父类和子类

class myclass

{

var $public =‘public‘;//var默认public

protected $protected =‘protected‘;

private  $private=‘private‘;

function printh()

{

echo $this->public."\n";

echo $this->protected."\n";

echo $this->private."\n";

}

}

class myclass2 extends myclass

{//可以对public和protected进行重定义,但private不行

protected $protected=‘protected2‘;

function printh()

{

echo $this->public."\n";

echo $this->protected."\n";

echo $this->private."\n";

}

}

测试用子类访问父类protected

报错

测试用子类访问private

报错

测试子类重写父类方法后调用父类属性

无法对private进行重定义,会报错undefined

对父类方法和成员变量的重写测试

测试代码:

<?php

class MyClass

{

// 声明一个公有的构造函数

public function __construct() { }

// 声明一个公有的方法

public function MyPublic() { echo "public‘s function"."\n";}

// 声明一个受保护的方法

protected function MyProtected() { echo "protected‘s function"."\n"; }

// 声明一个私有的方法

private function MyPrivate() {echo "private‘s function"."\n"; }

// 此方法为公有

public function Foo()

{

$this->MyPublic();

$this->MyProtected();

$this->MyPrivate();

}

}

$myclass = new MyClass;

$myclass->MyPublic(); // 这行能被正常执行

//$myclass->MyProtected(); // 这行会产生一个致命错误

//$myclass->MyPrivate(); // 这行会产生一个致命错误

$myclass->Foo(); // 公有,受保护,私有都可以执行

/**

* Define MyClass2

*/

class MyClass2 extends MyClass

{

// 此方法为公有

function Foo2()

{

$this->MyPublic();//没问题

$this->MyProtected();//没问题

//$this->MyPrivate(); // 这行会产生一个致命错误

}

}

$myclass2 = new MyClass2;

$myclass2->MyPublic(); // 这行能被正常执行

$myclass2->Foo2(); // 公有的和受保护的都可执行,但私有的不行

class Bar

{

public function test() {

$this->testPrivate();

$this->testPublic();

}

public function testPublic() {

echo "Bar::testPublic\n";

}

private function testPrivate() {

echo "Bar::testPrivate\n";

}

}

class Foo extends Bar

{

public function testPublic() {

echo "Foo::testPublic\n";

}

private function testPrivate() {

echo "Foo::testPrivate\n";

}

}

$myFoo = new foo();

$myFoo->test(); // Bar::testPrivate

// Foo::testPublic

?>

原文地址:https://www.cnblogs.com/shayanboy/p/11645024.html

时间: 2024-08-07 13:24:03

php面向对象常用概念的相关文章

黑马程序员-----面向对象编程概念

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ----- 第一讲   面向对象编程概念 本小节知识点: 1.[了解]编程的实质是什么? 2.[掌握]面向对象的基本概念 类    包    接口      继承      多态 ( 面向过程是强调我们要做一件事情有哪些步骤, 面向对象是强调我们做一件事

Auto入门 之 常用概念

1.SEMI (Semiconductor Equipment And Materials International)  国际半导体设备与材料产业协会 2.SECS SECS协议是基于RS-232或TCP/IP的点对点协议,由SECS I/HSMS.SECS II两层及GEM构成   SECS I/HSMS 为传输层,SECS II则把SECS I传输的二进制串翻译成形象直观的格式表示出来,SECS II规范传输资料的标准结构和显示内容,方便使用者查看数据内容. 3.GEM (Generic

Python--多线程、多进程常用概念

一.常用概念 进程 进程就是一个程序在一个数据集上的一次动态执行过程.进程一般由程序.数据集.进程控制块三部分组成. 线程 线程的出现是为了降低上下文切换的消耗,提高系统的并发性,并突破一个进程只能干一样事的缺陷,使到进程内并发成为可能. 线程也叫轻量级进程,它是一个基本的CPU执行单元,也是程序执行过程中的最小单元,由线程ID.程序计数器.寄存器集合和堆栈共同组成.线程的引入减小了程序并发执行时的开销,提高了操作系统的并发性能.线程没有自己的系统资源. 线程切换的开销远远小于进程切换的开销 切

面向对象基本概念整理

1.基本概念: 1.1 类与对象的初探 要我说,无论是面向过程的语言也好,面向对象的语言也罢,我首先要给他讲的都是类和对象!--------“这个世界是由什么组成的?”这个问题如果 让不同的人来回答会得到不同的答案.如果是一个化学家,他也许会告诉你“还用问嘛?这个世界是由分子.原子.离子等等的化学物质组成的”.如果是一个画家 呢?他也许会告诉你,“这个世界是由不同的颜色所组成的”.……呵呵,众说纷纭吧!但如果让一个分类学家来考虑问题就有趣的多了,他会告诉你“这个世界是 由不同类型的物与事所构成的

布局与控件(一)——布局与控件的常用概念

第1节 布局与控件的常用概念 界面设计中的控件,就是我们常常看到的按钮 滑动条 文字显示区等等,它们就像房间里的家具,是界面设计的最小单位. 布局是一个可以容纳别的布局(或者控件)的容器.它就像是一个大的房间,房间里面可以放各种家具(控件),也可以再隔离成更多的房间(放入别的布局). 不过,两者有很多共同的地方,例如定义它们的大小.边距等等. 1.1 尺寸单位 在使用布局或控件时,有时需要指定它们的尺寸.安卓系统提供了三种单位: px:以像素为单位进行设置,屏幕上每一个点,就是一个像素,例如一部

面向对象基本概念

面向对象基本概念 乔高峰  于深圳整理(2007-01-13) 面向对象(object-oriented ;简称: OO) 至今还没有统一的概念,我这里把它定义为:按人们认识客观世界的系统思维方式,采用基于对象(实体)的概念建立模型,模拟客观世界分析.设计.实现软件的办法.通过面向对象的理念使计算机软件系统能与现实世界中的系统一一对应. 面向对象方法(Object-Oriented Method)是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,简称OO (Object-Ori

性能测试常用概念及计算公式

性能测试常用概念及计算公式 一.概念 1.并发连接数-SBC(Simultaneous Browser Connections) 并发连接数指的是客户端向服务器发起请求,并建立了TCP连接.每秒钟服务器链接的总TCP数量,就是并发连接数. 2.请求数-QPS(Query Per Second)/RPS(Request Per Second) 请求数有2个缩写,可以叫QPS也可以叫RPS.单位是每秒多少请求.Query=查询,也相当于请求.请求数指的是客户端在建立完连接后,向http服务发出GET

第9篇-JAVA面向对象-常用类Ⅴ

第9篇-JAVA面向对象-常用类Ⅴ 每篇一句 :巨轮寻深水而航行 初学心得: 没有胆大的猜测就没有伟大的发现 (笔者:JEEP/711)[JAVA笔记 | 时间:2017-04-13| JAVA面向对象 Ⅴ] 1.JAVA Scanner类 java.util.Scanner 是 Java5 的新特征,读者可以通过 Scanner 类来获取用户的输入 创建 Scanner 对象的基本语法格式: Scanner s = new Scanner(System.in); 使用 next 方法代码: 1

一:Java之面向对象基本概念

1.面向对象 面向对象(Object Oriented)是一种新兴的程序设计方法,或者是一种新的程序设计规范(paradigm),其基本思想是使用对象.类.继承.封装.多态等基本概念来进行程序设计.从现实世界中客观存在的事物(即对象)出发来构造软件系统,并且在系统构造中尽可能运用人类的自然思维方式. 什么是OOP? OOP,即是面象对象的编程,是与结构化编程相对的编程方式.不了解结构化编程也无碍.简单地看下周遭的世界,你就能找到点OOP的特质. 例如:一辆汽车,有轮子.发动机等基本设备,可以行驶