java面向对象的特征 —(13)
面向对象的特征一:封装与隐藏
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)相关推荐
- Java面向对象三大特征---继承
系列文章目录 Java面向对象三大特征-多态 Java面向对象三大特征-封装 文章目录 系列文章目录 前言 一.概念 二.举例说明 三.语句格式 三.为何要使用继承 四.super与this关键字 五 ...
- java面向对象基本特征_Java 面向对象的基本特征
前言: 在刚开始接触Java的时候,那时候面对Java面向对象的几大特征一直理解的不是很理解,借着空闲时间在这里整理一下,同时在加深一下印象. 一.封装: Java面向对象的特征之封装,所谓的封装就是 ...
- JAVA面向对象三大特征:
JAVA面向对象三大特征: 1.封装 (英语:Encapsulation)是指一种将抽象性函式接口的实现细节部份包装.隐藏起来的方法. 封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的 ...
- java面向对象的特征封装_Java总结-Java面向对象的基本特征之一:封装性
作者:nyist-tc-岑国玉 来源:牛客网 Java面向对象的基本特征之一:封装性 封装性: 1.封装性的目的:保护某些属性和方法不被外部所看见. //这里说一下自己学linux时老师教我这个封装类 ...
- Java面向对象三大特征:封装、继承、多态
一.封装 封装这个词听起来好象是将什么东西包裹起来不要别人看见一样,就好象是把东西装进箱子里面,这样别人就不知道箱子里面装的是什么东西了.其实 JAVA 中的封装这个概念也就和这个是差不多的意思. ...
- Java面向对象三大特征的理解
面向对象三大特征的理解 初始理解 封装 继承 多态 初始理解 其实这些知识很早就有接触,而且一些概念也牢记于心了.自己叙述面向对象的特征会是这样的: 面向对象的三大特征是封装.继承和多态.封装是对代码 ...
- java面向对象三大特征及五大原则
java面向对象 一.java面向对象的三大特征 1.封装(Encapsulation) 封转是指属性私有化 根据需要提供setter和getter方法来访问属性 隐藏具体属性和实现细节,仅对外开放接 ...
- Java 面向对象三大特征
面向对象三大特征: 封装性 继承性 多态性 1. 封装性 所谓封装,也就是把客观事物封装成抽象的类,并且类可以把自己的属性和方法只给特定的对象或其他类进行访问,即使用不同的访问统治权限使类被不同的 ...
- JAVA面向对象的特征
- 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面.抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么. - 继承:继承是从已有类得到继承信息创建新类的过 ...
最新文章
- 局域网怎样自动安装FLASH插件(浏览器不安装flashplayer都可以浏览.swf文件)
- (六)java多线程之ReadWriteLock
- Cookie简介及JSP处理Cookie的方法(转)
- python语法笔记(六)
- Serverless 领域近一年行业发展回顾
- Redis性能指标监控
- 【动态规划】洛谷 P1282 多米诺骨牌
- C语言中函数调用中的传值与传址
- Docker学习总结(48)——Docker 四种网络模式温故
- SQL Server2008函数大全(完整版)
- visual studio 资源编辑器 标尺和参考线,网格线
- PHP获取客户端IP函数
- 云台角度 测距 海康摄像头_摄像头(海康)
- Zerg虫族的传说[官方资料]
- Python数据可视化之随机点图
- 图像处理之几何变换(python实现)
- Nexus搭建私服(记录)
- c语言高级语言控制成分while,这衣服收费的形式特征有
- 关于java语言继承的说法正确的是_下列关于Java继承的说法中,正确的是( )
- 第14周 预习实验与作业:Java数据库编程