php 封装 知识点
类
由众多对象抽象出来的
对象
由类实例化出来的
成员变量
成员方法
成员属性
访问修饰符
public 公有的
protected 受保护的
private 私有的
构造函数
1.写法特殊
2.执行时间特殊
面向对象的三大特性 继承 封装 多态
1.封装
目的:为了使一个类更加安全
做法:
1.将成员变量变为私有的
2.在类里面做方法来间接访问成员变量
3.在方法里面加控制
class Ren
{
public $code; //人员代号
private $name; //人员名称
private $sex; //人员性别
private $age; //人员年龄,必须在18-50周岁之间
//构造方法,用来初始化性别
function __construct($s)
{
$this->sex = $s;
}
/*//造一个修改年龄的方法
function SetAge($a)
{
//加控制
if($a>18 && $a<50)
{
$this->age = $a;
}
}
//造一个获取age值的方法
function GetAge()
{
return $this->age;
}*/
//给变量赋值的魔术方法
function __set($n,$v)
{
if($n=="age")
{
if($v>18 && $v<50)
{
$this->$n = $v;
}
}
else
{
$this->$n = $v;
}
}
//__get魔术方法,用来取变量值的
function __get($n)
{
return $this->$n;
}
}
//造对象
$r = new Ren("男");
//$r->SetAge(30);
//$r->__set("age",30);
$r->age = 30; //自动调用__set()方法,将变量名当做第一个参数,将等号右边的值当做第二个参数
$r->name = "张三";
//echo $r->sex; //自动调用__get()方法,将变量名当做参数
//var_dump($r);
class Dog
{
private $name;
function Jiao()
{
echo $this->name."在叫";
}
function SetName($n)
{
$this->name = $n;
return $this;
}
}
$d = new Dog();
$d->SetName("旺财")->Jiao();
//2.继承
//3.多态
?>
php 封装 知识点的更多相关文章
- # 095 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 03 封装总结 01 封装知识点总结
095 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...
- react第十一单元(受控组件和非受控组件-实现类似于vue双向绑定的功能)
第十一单元(受控组件和非受控组件-实现类似于vue双向绑定的功能) #课程目标 理解因为react的单向数据流 理解表单组件会因为react数据流变的不好维护 理解受控组件与非受控组件的实质区别 理解 ...
- oc语言学习之基础知识点介绍(三):类方法、封装以及继承的介绍
一.类方法的使用 /* 像我们之前学的方法,必须先实例化这个类的对象才能调用这个方法,类方法不用实例化对象,直接调用这个方法. 之前学的方法调用的语法: [对象名 方法名]; //对象方法 类方法: ...
- python学习之老男孩python全栈第九期_day026知识点总结——封装、property、类方法、初识反射
一. 封装 class Room: def __init__(self, name, length, width): self.__name = name self.__length = length ...
- python学习之老男孩python全栈第九期_day025知识点总结——接口类、抽象类、多态、封装
一. 接口类 java:面向对象编程 设计模式 -- 接口类 接口类:python原生不支持 抽象类:python 原生支持的 from abc import abstractclassmethod, ...
- 牛客网Java刷题知识点之面向对象java的四大特性(抽象、封装、继承、多态)
不多说,直接上干货! 面向对象java的四大特性之抽象 抽象就是有点模糊的意思,还没确定好的意思. 就比如,要定义一个方法和类.但还没确定怎么去实现它的具体一点的子方法,那我就可以用抽象类或接口.具体 ...
- muduo网络库学习之MutexLock类、MutexLockGuard类、Condition类、CountDownLatch类封装中的知识点
一.MutexLock 类 class MutexLock : boost::noncopyable 二.MutexLockGuard类 class MutexLockGuard : bo ...
- Spring Cloud 之 Feign 知识点:封装了 REST 调用
Feign Client 会在底层根据你的注解,跟你指定的服务建立连接.构造请求.发起请求.获取响应.解析响应,等等. Feign 的一个关键机制就是使用了动态代理. 首先,如果你对某个接口定义了 @ ...
- python3 速查参考- python基础 8 -> 面向对象基础:类的创建与基础使用,类属性,property、类方法、静态方法、常用知识点概念(封装、继承等等见下一章)
基础概念 1.速查笔记: #-- 最普通的类 class C1(C2, C3): spam = 42 # 数据属性 def __init__(self, name): # 函数属性:构造函数 self ...
随机推荐
- JS this指向
正常模式 在正常模式下独立函数的的 this 指向 undefined 或 window. <script type="text/javascript"> functi ...
- C#读取Excel,或者多个excel表,返回dataset
把excel 表作为一个数据源进行读取 /// <summary> /// 读取Excel单个Sheet /// </summary> /// <param name=& ...
- 分布式开放消息系统(RocketMQ)的原理与实践
分布式消息系统作为实现分布式系统可扩展.可伸缩性的关键组件,需要具有高吞吐量.高可用等特点.而谈到消息系统的设计,就回避不了两个问题: 消息的顺序问题 消息的重复问题 RocketMQ作为阿里开源的一 ...
- nodejs异步处理
采用Async.Q.Promise等第三方库处理异步回调 Async 安装 npm install async --save-dev
- Windows bat脚本学习(1)
基础 首先所有命令在cmd命令行中都能找到说明: 例如 想知道type用法 输入type /? 其他命令都一样 type [drive:][path] filename 显示文本文件内容 虽然有点鸡肋 ...
- 今天开始学习java编程
<java>程序设计教程与上机实验
- thinkphp 命名空间
什么是命名空间?从广义上来说,命名空间是一种封装事物的方法.在很多地方都可以见到这种抽象概念.例如,在操作系统中目录用来将相关文件分组,对于目录中的文件来说,它就扮演了命名空间的角色.具体举个例子,文 ...
- springmvc 格式化使用Jackjson格式化报Failed to write HTTP message
Failed to write HTTP message: org.springframework.http.converter.HttpMessageNotWritableException: Co ...
- redis 在后台启动
昨天在cmd窗口启动,窗口关闭,再次访问会报错,所以在次打开 首先你要安装服务:redis-server --service-install redis.windows.conf --loglevel ...
- SQL拼接自己需要的字符串
SQL行转列有多种写法,如果想把多行数据拼接成为新的一行,比如: 首先,将查询转为XML 替换XML的标签 将第一个字符,去掉试用 STUFF函数 sql STUFF用法 1.作用 删除指定长度的字符 ...