PHP类(三)-类的封装
设置私有成员
使用private关键字来设置私有成员,完成对成员的封装,封装后的成员在对象的外部不能被访问,如果访问会出现错误,在对象的内部能访问被封装的成员属性和方法。
<?php
class Person{
//封装属性
private $name;
private $age;
private $sex; function __construct($name="Tom",$age=23,$sex="Male"){
$this->name = $name;
$this->age = $age;
$this->sex = $sex;
} function Say(){
echo "My name is ".$this->name.",and my age is ".$this->age.",sex is ".$this->sex;
} private function Walk(){
echo $this->name." is Walk.";
}
} $p1 = new Person();
$p1->Say();
$p1->Walk();
$p1->age = 25;
?>
执行结果
My name is Tom,and my age is 23,sex is Male
Fatal error: Call to private method Person::Walk() from context '' in C:\phpStudy\WWW\php\lei\FengZhuang.php on line 25
Fatal error: Cannot access private property Person::$age in C:\phpStudy\WWW\php\lei\FengZhuang.php on line 26
私有成员的访问
在对象外如果想获取私有属性的值,或者想给私有属性赋值,可以使用public关键字或者在对象内部声明一些操作私有属性的方法
类中的构造方法默认为公有方法,构造方法不要设置成私有的
<?php
class Person{
private $name;
private $age;
private $sex; function __construct($name="Tom",$age=23,$sex="Male"){
$this->name = $name;
$this->age = $age;
$this->sex = $sex;
} function Say(){
echo "My name is ".$this->name.",and my age is ".$this->age.",sex is ".$this->sex;
echo "<br>";
} public function Walk(){
echo $this->name." is Walk.";
echo "<br>";
} public function SetAge($age){
if($age >100 || $age <0)
return;
else
$this->age = $age;
return $this->age;
}
} $p1 = new Person();
$p1->Say();
$p1->Walk();
$p1->SetAge(53);
?>
运行结果

PHP类(三)-类的封装的更多相关文章
- python - class类 (三) 类的组合
类的组合: #组合 class A1(): def pr(self): return 'a1' class A2(): def pr(self): return 'a2' class A3(): de ...
- JavaScript “类”定义 继承 闭包 封装
一.Javascript “类”: 类:在面向对象编程中,类(class)是对象(object)的模板,定义了同一组对象(又称"实例")共有的属性和方法. Javascript是一 ...
- mybatis源码- 反射模块一(跟着MyBatis学反射):类级别信息的封装
目录 1 JavaBean 规范 2 Reflector和ReflectorFactory 2.1 Reflector 属性 2.1.1 属性 2.1.2 Invoker 接口 2.2 Reflect ...
- python - class类 (七) 三大特性 - 封装 结尾
封装: # 封装 #第一层,类就是麻袋,本身就是一种封装 #第二层,类中定义私有的,至在类的内部使用,外部无法访问 #第三层,封装在于明确区分内外,使得类实现者可以修改封装内的东西二不影响外部调用者 ...
- python 全栈开发,Day116(可迭代对象,type创建动态类,偏函数,面向对象的封装,获取外键数据,组合搜索,领域驱动设计(DDD))
昨日内容回顾 1. 三个类 ChangeList,封装列表页面需要的所有数据. StarkConfig,生成URL和视图对应关系 + 默认配置 AdminSite,用于保存 数据库类 和 处理该类的对 ...
- day36 类的三大特性---封装以及Property特性
目录 类的封装 如果真的要拿 类的property特性 setter & deleter 类属性用法 类与对象的绑定方法和非绑定方法 对象方法&类方法&静态方法 隐藏模块内的函 ...
- 转 OC温故:类的三大特性(封装,继承,多态)
原文标题:OC学习篇之---类的三大特性(封装,继承,多态) 我们都知道,面向对象程序设计中的类有三大特性:继承,封装,多态,这个也是介绍类的时候,必须提到的话题,那么今天就来看一下OC中类的三大特性 ...
- python面向编程:类的组合、封装、property装饰器、多态
一.组合 二.封装 三.propert装饰器 四.多态 一.组合 ''' 1. 什么是组合 一个对象的属性是来自于另外一个类的对象,称之为组合 2. 为何用组合 组合也是用来解决类与类代码冗余的问题 ...
- 如何讲清楚 Java 面向对象的问题与知识?(类与对象,封装,继承,多态,接口,内部类...)
写在最前面 这个项目是从20年末就立好的 flag,经过几年的学习,回过头再去看很多知识点又有新的理解.所以趁着找实习的准备,结合以前的学习储备,创建一个主要针对应届生和初学者的 Java 开源知识项 ...
随机推荐
- mysql基础(3)-高级查询
聚合函数 count 返回查询结果的条数 max 返回查询结果的最大值 min 返回查询结果的最小值 sum 返回查询结果的和 avg 返回查询结果的平均值 统计分数大于等于90的人数: mysq ...
- Java执行过程
Java的运行原理 在Java中引入了虚拟机的概念,即在机器和编译程序之间加入了一层抽象的虚拟的机器.这台虚拟的机器在任何平台上都提供给编译程序一个的共同的接口.编译程序只需要面向虚拟机,生成虚拟机能 ...
- CDH- cdh kafka已经卸载了,但是服务器还有kafka-topics这些命令可用,导致重新安装kafka出现问题
cdh界面删除并不会将 kafka数据删除,需要将kafka集群节点 var/local/kafka/data 清理掉 然后将zk brokers/topics 下的topic也清理掉
- js工厂方法
工厂方法与简单工厂的区别在于工厂方法没有switch条件分支,实例化哪一个子类放到了客户端(可以利用反射),这样整个工厂和产品体系都没有修改的变化,而只是扩展的变化,这就完全符合了开放-封闭原则的精神 ...
- c# 判断一个ip通不通 能不能ping通
方法一: 已经证实能用的. using System; using System.Collections.Generic; using System.ComponentModel; using Sys ...
- tagclass,taglib,tld设置
<tag> <name>dateOutput</name> <tagclass>tags.DateOutput</tagclass> // ...
- mysql插入一万条数据
定义一个存储过程 mysql> delimiter $$ mysql> create procedure ptest() -> begin -> declare p ...
- idea下建立bootstrap项目
环境准备: 1.创建一个static web名为bootstrapDemo 2.在bootstrapDemo文件夹下安装bower npm install bower 会自动产生node-module ...
- MKMapView缩放显示全部annotation(转)
原文 http://blog.csdn.net/favormm/article/details/8028026#define MINIMUM_ZOOM_ARC 0.014 //approximate ...
- PHP文件管理
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...