什么是封装:对象中的成员该隐藏的隐藏、该公开的要公开

封装:顾名思义,隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别;将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。

封装的目的

增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过 外部接口,一特定的访问权限来使用类的成员。

封装的大致原则:

1、把尽可能多的东西藏起来.对外提供简捷的接口.

2、把所有的属性藏起来.

3、封装好处:将变化隔离;便于使用;提高重用性;安全性。

访问控制修饰符Modifiers

可以修饰:属性、方法、构造方法、类

public     protected     默认不写   private

公开的      受保护的                     私有的

从上到下:作用范围递减

修饰符\作用范围   本类      同包     子类    其它

public                 OK       OK       OK       OK

protecetd        OK       OK       OK

默认不写             OK       OK

private               OK

1、属性的封装

(1)属性私有   private修饰  本类内部可见,保证对象数据的安全

(2)提供getter、setter方法来读取或改写属性值

2、方法的封装

常用public、protecetd、private来修饰方法,具备不同的可见性。

public:  任何作用域都可见

protecetd: 常用于父类需要继承给子类的方法

private:  只有本类内部可以使用

public和private有何区别?  (BS  MS)

来自于项目中的经验和总结:

1)public修饰的方法才算作工作量。

2)public修饰的方法需要增加后期的维护成本。

3、构造方法的封装

构造方法一般使用public修饰:外界可以直接new对象,会间接调用其构造方法

public Animal(){}

如果构造方法使用private修饰:外界就不能new对象

private Animal(){}

java面向对象之 封装 Encapsulation的更多相关文章

  1. Java面向对象(封装性概论)

     Java面向对象(封装性概论) 知识概要:                   (1)面向对象概念 (2)类与对象的关系 (3)封装 (4)构造函数 (5)this关键字 (6)static关键 ...

  2. java面向对象(封装,继承,多态,抽象,接口的定义和实现)

    1.封装 在面向对象程式设计方法中,封装(英语:Encapsulation)是指,一种将抽象性函式接口的实作细节部份包装.隐藏起来的方法. 封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定 ...

  3. Java面向对象的封装

    封装是Java面向对象的三大特性之一,通常我们是通过包管理机制同时对类进行封装,隐藏其内部实现细节,通常开发中不允许直接操作类中的成员属性,所以属性一般设置为私有权限private,类中一般会给出一些 ...

  4. Java笔记(十)……面向对象II封装(Encapsulation)

    封装概念 封装: 是指隐藏对象的属性和实现细节,仅对外提供公共访问方式. 好处: 将变化隔离. 便于使用. 提高重用性. 提高安全性. 封装原则: 将不需要对外提供的内容都隐藏起来. 把属性都隐藏,提 ...

  5. Java面向对象之封装

     面向对象的三个特征:封装.继承和多态. Java开发的过程就是找合适的库对象使用,没有对象创建新对象.找对象,建立对象,使用对象并维护对象之间的关系. 类就是对现实生活中事物的描述,而对象就是这类事 ...

  6. java面向对象(封装-继承-多态)

    框架图 理解面向对象 面向对象是相对面向过程而言 面向对象和面向过程都是一种思想 面向过程强调的是功能行为 面向对象将功能封装进对象,强调具备了功能的对象. 面向对象是基于面向过程的. 面向对象的特点 ...

  7. Java面向对象之封装 入门实例(一)

    一.基础概念 (一)面向对象的三大特征:      1.封装         2.继承          3.多态 (二)封装:隐藏实现细节,对外提供公共的访问方式(接口). 封装的体现之一:将属性都 ...

  8. java面向对象之封装性

    面向对象的特征之一:封装和隐藏: 一.问题的引入: 当创建一个类的对象以后,可以通过“对象.属性”的方式,对对象的属性进行赋值.这里,赋值操作要受属性的数据类型和存储范围的制约.除此之外,没有其他制约 ...

  9. Java 面向对象,封装,继承

    1相关概念的理解 1.1面向过程.面向对象 面向过程与面向对象都是编程中,编写程序的一种思维方式. 面向过程的程序设计方式,是遇到一件事时,思考“我该怎么做”,然后一步步实现的过程.(职员思想) 面向 ...

随机推荐

  1. 在Activity中动态设置TextView的隐藏属性

    if (true) { //显示 viewHolder.tvLine.setVisibility(View.INVISIBLE);} else { //不显示 viewHolder.tvLine.se ...

  2. 03JS高级关于为空的变量判断

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  3. 我的DbHelper数据操作类(转)

    其实,微软的企业库中有一个非常不错的数据操作类了.但是,不少公司(起码我遇到的几个...),对一些"封装"了些什么的东西不太敢用,虽然我推荐过微软的企业库框架了...但是还是要&q ...

  4. yii2 安装过程中的问题及解决方法

    一.php版本要求5.4+,如果使用wamp组合包,建议更换 二.各种模块的支持,一般只要修改php.ini文件,去掉相应模块前的注释即可. 注意,Intl extension模块的支持需要将     ...

  5. 在MySQL数据库建立多对多的数据表关系

    在数据库中,如果两个表的之间的关系为,多对多的关系,如:“学生表和课程表”,一个学生的可以选多门课,一门课也可以被多门学习选;根据数据库的设计原则,应当形成第三张关联表 步骤1:创建三张数据表Stud ...

  6. Struts2技术详解(转)

    1, 当Action设置了某个属性后,Struts将这些属性封装一个叫做Struts.valueStack的属性里.获取valueStack对象: ValueStack vs = (ValueStac ...

  7. Oracle EBS-SQL (WIP-11):检查期间任务完工记录数.sql

    select        WE.WIP_ENTITY_NAME                 任务名称,        WDJ.class_code                         ...

  8. php 验证身份证有效性,根据国家标准GB 11643-1999 15位和18位通用

    //验证身份证是否有效 function validateIDCard($IDCard) { if (strlen($IDCard) == 18) { return check18IDCard($ID ...

  9. fuel Explain

    http://docs.mirantis.com/openstack/fuel/fuel-5.1/ https://software.mirantis.com/quick-start/ https:/ ...

  10. Spring、实例化Bean的三种方法

    1.使用类构造器进行实例化 <bean id="personIService" class="cn.server.impl.PersonServiceImpl&qu ...