面向对象:是基于面向过程的一种思想。

面向过程:强调的是功能行为。

面向对象:将功能封装进对象,强调具备了功能的对象。面向对象是基于面向过程的。

面向对象的三大特性:封装,继承,多态

封装   将功能封装成一个个独立的单元,减小耦合,避免牵一发而动全身,方便对程序的修改

继承   代码重用,减少编码量,间接减少维护成本。

封装好处:

1.将变化隔离;

2.便于使用。

3.提高重用性。

4.提高安全性。

封装原则:

将不需要对外提供的内容都隐藏起来。

把属性都隐藏,提供公共方法对其访问。

private:关键字

A:用于修饰成员变量和成员方法。
       B:被修饰的内容在其他类中是不可以被访问的。

注意:私有仅仅是封装的一种体现而已。

第一种理解方式:

封装:

首先,属性可用来描述同一类事物的特征, 行为可描述一类事物可做的操作,

封装就是要把属于同一类事物的共性(包括属性与行为)归到一个类中,以方便使用.

比如人这个东东,可用下面的方式封装:

人{

年龄(属性一)

身高(属性二)

性别(属性三)

做事(行为之一)

走路(行为之二)

说话(行为之三)

}

继承:

由于封装,使得有共同特征的一类事物的所有描述信息都被归于一类之中,但我们

知道,这并不是万能的,有些事物有共性,但还存在区别,比如教师,简单封装起来如

下:

教师{

年龄(属性一)

身高(属性二)

性别(属性三)

做事(行为之一)

走路(行为之二)

说话(行为之三)

教书(行为之四)

}

上面对"教师"的封装,与对"人"的封装基本上差不多,只是多了一个特征行为:教书,

教师有与人一样的共性, 但我们不能说"人教书",也就是不能把教书封装到"人"

之中去,教书是教师的特征行为之一. 为了省事地封装教师(代码的复用,这只是继

承存在的原因之一), 可以让教师去继承人,

如:

教师 extends 人{

教书(

行为之三

)

}

这样,我们就不用重新定义那些已经被"人"这一个类所封装的那些属性与行为了,

而只需要使用继承的方式,在人的基础上拓展教师专有的行为,即"教书"即可把教

师描述出来;这样的结果, 即是教师也同时拥有"人"之中所封装的一切属性与行为,

还拥有自己的特征行为"教书".

一、封装性
封装就是把抽取出来的数据和对数据的操作封装在一起,数据被保护在内部,程序的其他部分只有被授权的操作(方法)才能对数据进行操作。
php提供了三种访问控制修饰符
public 表示全局,公共的,本类内部,类外部,子类都可以访问
protected 表示受保护的,只有本类或子类可以访问
private 表示私有的,只有本类内部可以访问
以上三种修饰符既可以修饰方法也可以修饰属性(变量),方法如果没有访问修饰符则默认是public,成员属性必须指定访问修饰符。

转载于:https://www.cnblogs.com/jiaoaozuoziji/p/7384421.html

面向对象---特----性相关推荐

  1. 赵桐正 php,php面向对象-封装性

    一.封装性(使用private关键字修饰就实现了对成员的封装) 1.设置封装 例3-1: class Person{ private $name; //设置私有成员 function say(){ e ...

  2. 允许使用抽象类类型 isearchboxinfo 的对象_此对象非彼对象(面向对象)3

    java13面向对象深入3 大纲 这里没有写 面向对象-封装性 理解 封装( encapsulation)怎么去理解,一台电脑利用一个外壳包裹,保护了里面的电器元件,提供了少量的按键与其对接使用.我要 ...

  3. java面向对象计算机与CD实验,Java面向对象上机实验指导书.doc

    Java面向对象上机实验指导书 山东建筑大学实验报告 课 程 :Java面向对象程序设计语言 院 (部):商学院 专 业 :电子商务 班 级 : 学生姓名: 学 号: 指导教师:陈明志 完成时间:20 ...

  4. C#之浅析面向对象编程思想(一)

    纵观MicroSoft公司的几种主流语言,C是面向过程,VB既有面向过程也有面向对象的特性,而C#则是纯粹的面向对象的编程语言.在UML的学习过程中,画类图.对象图的时候面向对象的思想就已经用到了具体 ...

  5. java访问控制度_菜鸡的Java笔记 - java 访问控制权限

    java中四种访问控制权限的使用 内容 在java里面一共定义有四个权限,按照由小到大的顺序:private 那么这四种访问控制权限的特点如下 NO 范围 private defaule protec ...

  6. 第一章 代码无错就是优吗?(简单工厂模式)

    今天是设计模式的第一章由于工作比较忙所以一直想写点什么,但是还是没时间写.这篇的主题是代码无错可以运行就是优质代码吗? 首先要实现一个业务代码:有部门A,B,C,D 四个部门但是A部门的奖金是10%, ...

  7. B站百万播放量Java零基础教程视频(适合Java 0基础,Java初学入门),史上最细Java零基础教学视频

    是否还在为学习Java如何入门而烦恼? 是否还在为Java软件如何安装而烦恼? 是否还在找寻着适合零基础的Java视频教程? 动力节点教学总监老杜159集课堂实录Java零基础视频教程,从初学者角度出 ...

  8. python写脚本入门-学习Python的教程?:python 脚本菜鸟教程

    学习Python的教程? Python作为一门面向对象的性语言,其实它的学习也很简单 - 配置 - Python基础(语法..数据类型.高级变量.函数.Python高级特性) - 面向对象编程.面向对 ...

  9. java 1 0_【Java】1.0 开发环境

    本文并非最终版本,如果想要关注更新或更正的内容请关注文集,联系方式详见文末,如有疏忽和遗漏,欢迎指正. 本文目录 1.Java语言概述 1.1 Java的简介 Java 是一门语言,也是一种技术 代码 ...

  10. typescript parseint不能传number_Typescript 使用日志

    Typescript 使用日志 最近这两年,有很多人都在讨论 Typescript,无论是社区还是各种文章都能看出来,整体来说正面的信息是大于负面的,这篇文章就来整理一下我所了解的 Typescrip ...

最新文章

  1. 一个实用技巧,告别手动画图,自动生成数据库 ER 图|原创
  2. JavaScript异步编程解决方案探究
  3. RocketMQ NameServer启动要初始化哪些参数
  4. QPixmap: It is not safe to use pixmaps outside the GUI thread原因
  5. 安装配置 flannel - 每天5分钟玩转 Docker 容器技术(59)
  6. 解决了无法显示验证码的问题
  7. springMVC的@RequestParam是必须滴
  8. 解决docker报错: ---> [Warning] IPv4 forwarding is disabled. Networking will not work.
  9. 蚂蚁御术:我的前端十年成长之路
  10. TensorFlow2-循环神经网络
  11. Vue2 源码漫游(一)
  12. VS2008系统开发背景图片的添加及注意事项
  13. 首选System.lineSeparator()以用Java编写系统相关的行分隔符字符串
  14. Spring Batch中面向TaskletStep的处理
  15. 此时无足够的可用内存,无法满足操作的预期要求,可能是由于虚拟地址随便造成的。请稍候重试。 .
  16. 如何在没有数组和string字符串的条件下输入时间(去时间的分号)
  17. BZOJ3442: 学习小组
  18. matlab设计计算器,MATLAB-计算器的设计.doc
  19. PhysX Setup
  20. C# 操作Word页眉页脚——奇偶页/首页不同、不连续设置页码、复制页眉页脚、锁定页眉页脚、删除页眉页脚...

热门文章

  1. No Need for Genius Envy
  2. Java反射----理解反射的源头Class类
  3. 利用反射机制,多个请求对应一个Servlet!附源代码
  4. 电力系统技术导则_《电力系统安全稳定导则(征求意见稿)》发布
  5. 大数组,找某数字的左,右边界
  6. python列表删除会出现一个错误 list index out of range
  7. Q-learning和Sarsa
  8. oracle去重复值查询,Oracle 重复数据查询以及删除
  9. linux reader使用方法,Linux Reader
  10. oracle关闭和,ORACLE启动和关闭