java面向对象

一、java面向对象的三大特征

1、封装(Encapsulation)

封转是指属性私有化

  • 根据需要提供setter和getter方法来访问属性
  • 隐藏具体属性和实现细节,仅对外开放接口
  • 控制程序中属性的访问级别

目的:增强数据安全性,不能让其他用户随意访问和修改数据,简化编程,使用者不必在意具体实现细节,而只是通过外部接口即可访问类的成员

2、继承(Extend)

继承是指将多个相同的属性和方法提取出来,新建一个父类

  • java中一个类只能继承一个父类,且只能继承访问权限非private属性和方法
  • 子类可以重写父类中的方法,命名与父类中同名的属性

目的:代码复用

3、多态

多态(Polymiorph)可以分为两种:设计时多态、运行时多态

设计(编译)时多态:即重载(Overload),是指java允许方法名相同而参数不同(返回值可以相同也可以不同),同一个类中允许存在一个或多个以上的同名函数,只要参数类型或参数个数不同即可

运行时多态:即重写(Override)必须是在继承体系中,子类重写父类方法,JVM运行时根据调用该方法的类型决定调用那个方法

目的:增加代码的灵活度

总结:

1、java中应尽量减少继承关系,以降低耦合度

2、使用多态时,父类在调用方法时,优先调用子类的方法,如果子类没有重写父类的方法,则再调用父类的方法

3、java访问控制符作用范围表:

本类 本包 子类 外部包
public
protected X
default X X
private X X X

✓:可以访问 X:不可访问

二、java面向对象的五大原则

单一职责原则:一个类,最好只做一件事,只有一个引起它变化。每个类应该实现单一的职责,如果不是,那就把类拆分

开放封闭原则:对扩展开放,对修改封闭

里氏替换原则:子类必须能够替换其基类,里氏替换原则中说,任何基类可以出现的地方,子类一定可以出现

依赖倒置原则:依赖于抽象接口,不要依赖于具体实现,简单来说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户于与实现模块间的耦合

接口隔离原则:使用多个小的专门接口,而不是使用一个大的接口

java面向对象三大特征及五大原则相关推荐

  1. Java基础:面向对象三大特征、五大原则

    转载请注明出处:jiq•钦's technical Blog 面向对象三大特征: (1)封装(Encapsulation) 所谓封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可 ...

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

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

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

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

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

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

  5. Java 面向对象三大特征

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

  6. java五大原则_Java面向对象的三大特征和五大原则

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

  7. 面向对象三大特性,五大原则

    以前一直认为程序中的类有使用到封装继承多态就是面向对象设计,其实不然 封装,继承,多态只是面向对象的三大特性,但是在设计程序的时候并不是说类的结构使用到了(或是体现出了)这三个特性就是面向对象, 其实 ...

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

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

  9. 【职坐标】java面向对象三大特征(一)——封装

    面向对象三大特性之封装篇 什么是封装? 信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一 ...

最新文章

  1. 斯坦福大学李飞飞团队图像分类课程笔记
  2. java编写类骑士游历_java课程设计骑士游历程序的开发
  3. RESTful 规范
  4. [O(N)的我不会]树网的核
  5. 实战项目三:爬取QQ群中的人员信息
  6. Spring-Spring整合MyBatis详解
  7. 《PowerShell V3——SQL Server 2012数据库自动化运维权威指南》——1.5 安装SMO
  8. pdf怎么查看坐标 python_如何从PDF文件中提取文本和文本坐标?
  9. linux系统分析工具续-SystemTap和火焰图(Flame Graph)
  10. Hadoop源代码分析(二)
  11. PHP请求一次网页前端浏览一次后端会出现两次请求次数的原因和解决方法。
  12. HTML5——锚点链接
  13. Atitit 诗歌之道 attilax著 艾龙 著 1. 诗歌集分类 1 1.1. 国王颂歌 1 1.2. 爱情类(相逢 赞美 相识 思念 离去 分分离离 忘记) 1 1.3. 其他 1 2. 世界
  14. linux添加软件源命令,Linux 添加源
  15. AspUpload实时上传进度的AJAX方法
  16. 动画过渡transition
  17. Dialog dismiss 和 cancel的区别
  18. WAF绕过技术系列文章(一)
  19. PostgreSQL on duplicate update
  20. 伪造邮件***,看我如何给网易邮箱APP发送垃圾邮件【二】

热门文章

  1. Linux-Centos 主机不能通过域名访问自己
  2. python_第三方模块下载
  3. 激光slam 理论详解(一)
  4. MATLAB短时傅里叶变换并绘制时频图
  5. mysql 慢 机器无压力_MySQL太慢?试试这些诊断思路和工具
  6. 校招+实习 | 旷视研究院职位一览无余!
  7. 后端语言除了java_浅谈后端语言优缺点
  8. 阿斯达年代记思维导图
  9. 前后端分离项目,跨域问题解决方案
  10. 关于面向对象、面向过程区别,我的看法