面向对象。OOP三大特征:封装,继承,多态。 这个讲的是【封存】
class Ren
{
private $name;
private $sex;
private $age; //年龄必须在18-50之间 function __constuct($v)
{
$this ->sex =$v;
}
//魔术方法set
function __set($n,$v)//可以给成员变量赋值,括号里有两个参数,第一个参数是成员变量的名称,第二个是成员变量的值。
{
if($n=="age")
{
if($v>= && $v<=)
{
$this->$n = $v;
}
} else
{
$this ->$n=$v;
}
}
//魔术方法get
function __get($n)
{
return $this->$n;
} } $r=new Ren(); $r-> age =; var_dump($r);
class Ren
{
private $name;
private $sex;
private $age; //年龄必须在18-50之间 function __construct($v)
{
$this->sex = $v;
} /*//设置age的值
function setage($a)
{
if($a>=18 && $a<=50)
{
$this->age = $a;
}
}
//获取age的值
function getage()
{
return $this->age;
}*/ function say()
{
echo "hello";
} //析构方法
function __destruct()
{
echo "这是一个析构方法";
} function __tostring()
{
return "这个类是人类";
} } $r = new Ren("男"); $r->setage();
echo $r->getage(); $r->say(); var_dump($r);
class Ren
{
private $name;
private $sex; function __construct($v)
{
$this->sex = $v;
} //设置age的值
function setage($a)
{
if($a>= && $a<=)
{
$this->age = $a;
}
}
//获取age的值
function getage()
{
return $this->age;
} function say()
{
echo "hello";
} //析构方法
function __destruct()
{
echo "这是一个析构方法";
} function __tostring()
{
return "这个类是人类";
} } $r = new Ren("男"); $r->say(); var_dump($r);
//构造方法:写法特殊,执行时间特殊 //OOP三大特性:封装,继承,多态 //封装的目的:为了让类更安全
//封装的做法:
//1.类里面的成员变量做为private
//2.使用成员方法来间接访问成员变量
//3.在该方法里面加限制条件
//php类里面不允许出现同名方法
函数重载 PHP不能用!!
//函数重载
//在类里面写多个同名方法来实现不同功能
public string Show()
{
return "显示";
}
public string Show(string a)
{
return a+"显示";
}
public string Show(string a,string b)
{
return a+b+"显示";
}
public string Show(int b)
{
return b+"数字";
}
//1.函数名必须相同
//2.参数个数不同或参数类型不同
//例子:计算器 $a = 10;
$b = 5; $jia = $a+$b;
$jian = $a-$b;
$cheng = $a*$b;
$chu = $a/$b; class jisuan
{
public $a;
public $b; function __construct($n,$m)
{
$this->a = $n;
$this->b = $m;
} function jia()
{
return $this->a+$this->b;
}
function jian()
{
return $this->a-$this->b;
}
function cheng()
{
return $this->a*$this->b;
}
function chu()
{
return $this->a/$this->b;
}
function quyu()
{
return $this->a%$this->b;
}
} $j = new jisuan(10,5);
$j->quyu();
//例子:求两个圆之间的阴影面积
$maxr = 20;
$minr = 10;
$mj = 3.14*$maxr*$maxr - 3.14*$minr*$minr; class Yuan
{
//代表半径
public $r; function __construct($n)
{
$this->r = $n;
} //求面积的方法
function MJ()
{
return 3.14*$this->r*$this->r;
}
} $r1 = new Yuan(20);
$r2 = new Yuan(10); $mianji = $r1->MJ()-$r2->MJ();
面向对象。OOP三大特征:封装,继承,多态。 这个讲的是【封存】的更多相关文章
- OOP三大核心封装继承多态
OOP支柱 3 个核心:封装 继承 多态 封装就是将实现细节隐藏起来,也起到了数据保护的作用. 继承就是基于已有类来创建新类可以继承基类的核心功能. 在继承中 另外一种代码重用是:包含/委托,这种重用 ...
- JAVA的三大特征 封装继承多态- 简单总结
简单总结一下 封装-即从很多类的抽取相同的代码 写在一个类里. 好处是 代码的重用,安全. 继承-减少代码的书写. 其好处也是 代码的重用. 多态- 把不同的子类对象都当作父类来看,可以屏蔽不同子类对 ...
- Java的OOP三大特征之一——继承
Java的OOP三大特征之一——继承 子类继承父类的特征和行为(属性和方法),使得子类具有父类的各种属性和方法.或子类从父类继承方法,使得子类具有父类相同的行为. 特点:在继承关系中,父类更通用.子类 ...
- Java三大特性(封装,继承,多态)
Java中有三大特性,分别是封装继承多态,其理念十分抽象,并且是层层深入式的. 一.封装 概念:封装,即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别:将抽象得到的数据 ...
- C++三大特性 封装 继承 多态
C++ 三大特性 封装,继承,多态 封装 定义:封装就是将抽象得到的数据和行为相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成类,其中数据和函数都是类的成员,目的在于将对 ...
- php面向对象的三大特征 封装,继承,多态
对象的主要三个特性 对象的行为:可以对 对象施加那些操作,开灯,关灯就是行为. 对象的形态:当施加那些方法是对象如何响应,颜色,尺寸,外型. 对象的表示:对象的表示就相当于身份证,具体区分在相同的行为 ...
- 面向对象的三大特征——封装、继承、多态(&常用关键字)
一.封装 Encapsulation 在面向对象程式设计方法中,封装是指,一种将抽象性函式接口的实作细节部份包装.隐藏起来的方法. 封装的概念(针对服务器开发,保护内部,确保服务器不出现问题) 将类的 ...
- Python面向对象的三大特征 --- 封装、继承、多态
一.封装 1)封装:是面向对象的一大特点:将属性和方法封装在一个抽象类中.外界使用类创建对象,然后让对象调用内部方法.对象方法的细节都被封装在类的内部. class Person(): def _ ...
- 深入理解Java面向对象三大特性 封装 继承 多态
1.封装 封装的定义: 首先是抽象,把事物抽象成一个类,其次才是封装,将事物拥有的属性和动作隐藏起来,只保留特定的方法与外界联系 为什么需要封装: 封装符合面向对象设计原则的第一条:单一性原则,一个类 ...
- 1.Java基础-面向对象编程思想(封装继承多态接口)
封装: 1.定义:隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别. 2.封装的目的是:增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,一特定的 ...
随机推荐
- SSE图像算法优化系列一:一段BGR2Y的SIMD代码解析。
一个同事在github上淘到一个基于SIMD的RGB转Y(彩色转灰度或者转明度)的代码,我抽了点时间看了下,顺便学习了一些SIMD指令,这里把学习过程中的一些理解和认识共享给大家. github上相关 ...
- Android——进程通信/ AIDL/Message相关知识总结贴
Android多进程通信 http://www.apkbus.com/android-83462-1-1.html Android 跨进程通信(一) http://www.apkbus.com/and ...
- sysbench做测试
安装的时候需要libtool,如果已经装了CP到sysbench的目录下 1:用法 sysbench [general-options]… –test=<test-name> [test- ...
- Main.storyboard: WKWebView before iOS 11.0 (NSCoding support was broken in previous versions)
在工程里用 故事板写了 wkwebview 如果运行在 ios11以下 就会报这个错误,如果要支持iOS 11 以下的用户,请重写View部分,使用代码调用WKWebView,而不用使用故事版来加 ...
- R中统计假设检验总结(一)
先PS一个:考虑到这次的题目本身的特点 尝试下把说明性内容都直接作为备注写在语句中 另外用于说明的部分例子参考了我的教授Guy Yollin在Financial Data Analysis and M ...
- Android 得到照片位置信息
目前Android SDK定义的Tag有:TAG_DATETIME 时间日期TAG_FLASH 闪光灯TAG_GPS_LATITUDE 纬度TAG_GPS_LATITUDE_REF 纬 ...
- AaronYang WCF教程目录
============================原创,讲究实践===================== 1. 那天有个小孩教我WCF[一][1/3] 基本搭建 阅读 ...
- 12C -- ORA-01033: ORACLE initialization or shutdown in progress
初装oracle 12.2 rac数据库. 登录RAC数据库中第1节点 $ sqlplus '/as sysdba' SQL> select name,open_mode from v$pdbs ...
- 项目通过tomcat部署到服务器,请求数据中文乱码问题
问题: 本地项目请求访问,浏览器中文输出没问题.部署到服务器上面之后,返回到浏览器的中文就乱码了. 尝试办法: 1.修改tomcat下的conf中的service.xml中的配置信息: 重新启动后,没 ...
- Fiddler插件开发 - 实现网站离线浏览功能
有这么一种应用场景: 你是做前端或APP开发的,需要调用服务端提供的接口,接口只能在公司内网访问:在公司外就无法调试代码了. 想在公司外访问怎么办呢? 如果在公司的时候将所有接口的响应内容都保存起来, ...