面向对象的特征一:封装与隐藏

1.为什么要引入封装性?

我们程序设计追求“高内聚,低耦合”。
高内聚 :类的内部数据操作细节自己完成,不允许外部干涉;
低耦合 :仅对外暴露少量的方法用于使用。

隐藏对象内部的复杂性,只对外公开简单的接口。便于外界调用,从而提高系统的可扩展性、可维护性。通俗的说,把该隐藏的隐藏起来,该暴露的暴露出来。这就是封装性的设计思想。

2.问题引入:

当我们创建一个类的对象以后,我们可以通过"对象.属性"的方式,对对象的属性进行赋值。这里,赋值操作要受到属性的数据类型和存储范围的制约。除此之外,没其他制约条件。但是,在实际问题中,我们往往需要给属性赋值加入额外的限制条件。这个条件就不能在属性声明时体现,我们只能通过方法进行限制条件的添加。(比如:setLegs()同时,我们需要避免用户再使用"对象.属性"的方式对属性进行赋值。则需要将属性声明为私有的(private).
–>此时,针对于属性就体现了封装性。

3.封装性思想具体的代码体现:

体现一:将类的属性xxx私化(private),同时,提供公共的(public)方法来获取(getXxx)和设置(setXxx)此属性的值
private double radius;
public void setRadius(double radius){
this.radius = radius;
}
public double getRadius(){
return radius;
}
体现二:不对外暴露的私有的方法
体现三:单例模式(将构造器私有化)
体现四:如果不希望类在包外被调用,可以将类设置为缺省的。

4.Java规定的四种权限修饰符

4.1 权限从小到大顺序为:private < 缺省 < protected < public
4.2 具体的修饰范围:

4.3 权限修饰符可用来修饰的结构说明:
4种权限都可以用来修饰类的内部结构:属性、方法、构造器、内部类
修饰类的话,只能使用:缺省、public

java面向对象的特征 —(13)相关推荐

  1. Java面向对象三大特征---继承

    系列文章目录 Java面向对象三大特征-多态 Java面向对象三大特征-封装 文章目录 系列文章目录 前言 一.概念 二.举例说明 三.语句格式 三.为何要使用继承 四.super与this关键字 五 ...

  2. java面向对象基本特征_Java 面向对象的基本特征

    前言: 在刚开始接触Java的时候,那时候面对Java面向对象的几大特征一直理解的不是很理解,借着空闲时间在这里整理一下,同时在加深一下印象. 一.封装: Java面向对象的特征之封装,所谓的封装就是 ...

  3. JAVA面向对象三大特征:

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

  4. java面向对象的特征封装_Java总结-Java面向对象的基本特征之一:封装性

    作者:nyist-tc-岑国玉 来源:牛客网 Java面向对象的基本特征之一:封装性 封装性: 1.封装性的目的:保护某些属性和方法不被外部所看见. //这里说一下自己学linux时老师教我这个封装类 ...

  5. Java面向对象三大特征:封装、继承、多态

    一.封装   封装这个词听起来好象是将什么东西包裹起来不要别人看见一样,就好象是把东西装进箱子里面,这样别人就不知道箱子里面装的是什么东西了.其实 JAVA 中的封装这个概念也就和这个是差不多的意思. ...

  6. Java面向对象三大特征的理解

    面向对象三大特征的理解 初始理解 封装 继承 多态 初始理解 其实这些知识很早就有接触,而且一些概念也牢记于心了.自己叙述面向对象的特征会是这样的: 面向对象的三大特征是封装.继承和多态.封装是对代码 ...

  7. java面向对象三大特征及五大原则

    java面向对象 一.java面向对象的三大特征 1.封装(Encapsulation) 封转是指属性私有化 根据需要提供setter和getter方法来访问属性 隐藏具体属性和实现细节,仅对外开放接 ...

  8. Java 面向对象三大特征

     面向对象三大特征: 封装性 继承性 多态性 1. 封装性  所谓封装,也就是把客观事物封装成抽象的类,并且类可以把自己的属性和方法只给特定的对象或其他类进行访问,即使用不同的访问统治权限使类被不同的 ...

  9. JAVA面向对象的特征

    - 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面.抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么. - 继承:继承是从已有类得到继承信息创建新类的过 ...

最新文章

  1. 局域网怎样自动安装FLASH插件(浏览器不安装flashplayer都可以浏览.swf文件)
  2. (六)java多线程之ReadWriteLock
  3. Cookie简介及JSP处理Cookie的方法(转)
  4. python语法笔记(六)
  5. Serverless 领域近一年行业发展回顾
  6. Redis性能指标监控
  7. 【动态规划】洛谷 P1282 多米诺骨牌
  8. C语言中函数调用中的传值与传址
  9. Docker学习总结(48)——Docker 四种网络模式温故
  10. SQL Server2008函数大全(完整版)
  11. visual studio 资源编辑器 标尺和参考线,网格线
  12. PHP获取客户端IP函数
  13. 云台角度 测距 海康摄像头_摄像头(海康)
  14. Zerg虫族的传说[官方资料]
  15. Python数据可视化之随机点图
  16. 图像处理之几何变换(python实现)
  17. Nexus搭建私服(记录)
  18. c语言高级语言控制成分while,这衣服收费的形式特征有
  19. 关于java语言继承的说法正确的是_下列关于Java继承的说法中,正确的是( )
  20. 第14周 预习实验与作业:Java数据库编程

热门文章

  1. 【IT笔试面试题整理】给定二叉树,给每层生成一个链表
  2. (转)FPGA的速度等级(speed grade)
  3. SUSE Linux 启动顺序
  4. React with Webpack - 2: css 处理
  5. python——input() 的用法及扩展
  6. kernel panic 和 kernel Oops
  7. Spring Boot 最流行的 16 条最佳实践!
  8. 地震中房子变废墟了,贷款还需要还吗?
  9. 贷款审批到底会考核哪些内容?
  10. 台湾印象之一:金马奖之夜