封装(encapsulation)继承(extend)多态(Polymorphism)this,super、类与类之间的关系
封装(encapsulation)
属性可以用来描述事物的特征,方法可以描述事物可以做的操作。封装就是把同一类事务的共性(包括属性和方法)归到一个类中。
- 提高代码的安全性,通过访问权限将不想让客户端看到的实现细节隐藏。
- 提高代码的复用性,将能实现特定功能的代码封装成一个独立的实体后,是程序员可以在需要的时候调用。
- “高内聚”:封装细节,便于修改内部代码,提高可维护性。
- “低耦合”:简化外部使用,便于调用者使用,便于扩展和协作。
访问控制符
封装的实现—使用访问控制符
- private表示私有,只有自己的类才能访问。
- defult(如同没有修饰符),只有同一个包的类能访问。
- protected表示只可以被同一个包的类以及其它包中的子类访问。
- public表示可以被该项目的所有包中的类访问。
继承
继承是所有OOP(Object Oriented Programming) 语言都不可或缺的一部分。
只要创建了一个类都会继承Object类。如果制定了父类,那么子类继承父类,父类继承它的父类直到父类为Object类。父类也称作超类、基类、派生类。继承后子类自动拥有父类的属性和方法,但是私有属性和构造方法并不能继承。
多态
多态指的是同一个行为不同的表现形式。要实现多态首先需要继承和封装。
实现多态的充要条件
- 继承
- 重写父类方法
- 父类引用指向子类对象
super
代表对当前对象的直接父类对象的引用,super可以调用直接父类的成员方法(注意权限修饰符的影响,比如不能访问private成员);
super可以调用直接父类的构造方法,只限构造方法中使用,且必须是第一条语句。
this
用法
- 调用当前对象的方法
- 在set方法中区分变量
- 在构造方法中使用this关键字调用重载的构造方法,避免相同的初始化代码。但只能在构造方法中用,并且必须位于构造方法的第一句。因为构造函数是用于初始化的,所以初始化动作一定要执行。否则编译失败。
- 普通方法中,this总是指向调用该方法的对象。构造方法中this总是指向正要初始化的对象。
- this不能用于static方法中。因为static方法在方法区里,还没对象。
注意
- 是对象内部指代自身的引用,同时也是解决成员变量和局部变量同名问题;
- this可以调用成员变量,不能调用局部变量;
- this也可以调用成员方法,但是在普通方法中可以省略this,在构造方法中不允许省略,必须是构造方法的第一条语句;
- 在静态方法当中不允许出现this关键字。
类与类之间的关系
- 继承:子类继承父类
- 实现:类实现接口
- 依赖:在这个类中存在另一个类对象:方法形参,成员变量,局部变量等
- 关联:这个类的成员变量是另一个类,关联还可以分为单向关联、双向关联、自关联和多重关联。
- 聚合:另一个类是这个类的其中一部分,大多也表现为成员变量
- 组合:另一个类是这个类的其中一部分,并且两者生命周期相同
依赖、关联、聚合、组合四种关系和代码的表现形式类似,代码的耦合度递增。依赖 < 关联 < 聚合 < 组合。
封装(encapsulation)继承(extend)多态(Polymorphism)this,super、类与类之间的关系相关推荐
- Java---面向对象编程三大特征【封装、继承、多态】及super关键字、方法重写/覆盖(不定期更新补充)---B站韩顺平老师视频总结
文章目录 三大特征 面向对象编程-封装 封装介绍 封装的理解和好处 封装的实现步骤(三步) 封装的简单案例 封装与构造器 封装的练习 面向对象编程-继承 为什么需要继承 继承基本介绍和示意图 继承的基 ...
- 黑马程序员---面向对象上(封装,继承,多态)
------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS ...
- Java笔记013-IDEA、包、访问修饰符、封装、继承、多态、Super、方法重写/覆盖(override)、java的动态绑定机制
目录 面向对象编程(中级部分) IDE(集成开发环境)-IDEA IDEA介绍 IDE(集成开发环境)-Eclipse Eclipse介绍 IDEA的安装 IDEA的基本介绍和使用 创建一个java项 ...
- extend implements多个对象_「每天三分钟跟我学Java」之Java面向对象的封装、继承、多态...
Java是面向对象的语言,深入理解面向对象的概念,对Java的开发至关重要.本节我们着重看下面向对象的三大特性,封装.继承.多态. 一.封装 封装是将类的某些信息隐藏在类内部,不允许外部程序直接访问, ...
- 十三、java类的封装、继承、多态
面向对象的三个基本特性就是:封装.继承和多态. 前面讲解了java 程序都是由类文件组成的,java是面向对象的程序设计语言,在java中面向对象的思想就是由类的设计来体现的,也即类的继承.封装和多态 ...
- python(11)—— 面向对象编程基础(对象,类,属性,封装,继承,多态)
把一组数据结构和处理它们的方法组成对象(object),把相同行为的对象归纳为类(class),通过类的封装(encapsulation)隐藏内部细节,通过继承(inheritance)实现类的特化( ...
- 什么是面向对象,它的三个基本特征:封装、继承、多态
什么是面向对象思想?已经学完了java确不知道如何跟别人解释面向对象是什么意思这很常见.让我们一起来回顾下这个奇思妙想~ 文章目录 一.面向对象与面向过程 1.什么是面向过程? 2.什么是面向对象? ...
- Python面对对象编程——结合面试谈谈封装、继承、多态,相关习题详解
1.面向对象的三大特征 封装:属性和方法放到类内部,通过对象访问属性或者方法,隐藏功能的实现细节.当然还可以设置访问权限; 继承:子类需要复用父类里面的属性或者方法,当然子类还可以提供自己的属性和方法 ...
- java写一个外网访问的接口_【JAVA基础】一个案例搞懂类、对象、重载、封装、继承、多态、覆盖、抽象和接口概念及区别(中篇)...
0 前言 初学JAVA时,总会对一些概念一知半解,相互混淆,不明其设计的用意,如类.对象.重载.封装.继承.多态.覆盖.抽象类.接口概念.为便于理解和巩固,本文将基于一个案例及其变形,展现各个概念的定 ...
- Java SE(六)之面向对象(封装,继承,多态,接口)
文章目录 类和对象 1. 创建一个类 2. 创建一个对象 3. 访问变量和方法 4. some tips 封装 修饰符 1. 访问控制修饰符 2. 非访问修饰符 (1)static (2)final ...
最新文章
- Linux C编程--string.h函数解析
- 【下】安全HTTPS-全面详解对称加密,非对称加密,数字签名,数字证书和HTTPS
- 你必须懂也可以懂的微服务系列三:服务调用
- Andorid ListView使用技巧
- [转]在Visual C++中以错误的顺序链接 CRT 库和 MFC 库时出现 LNK2005 错误
- mysql 压力测试知乎_MySQL性能基准测试对比:MySQL 5.7与MySQL 8.0
- setTimeout(fn,0)
- 程序员需要掌握哪些软技能?
- easypoi的学习笔记
- VMware12安装虚拟机教程、Ubuntu16.04安装教程
- 零跑C01/S01/C11/T03维修手册电路图培训手册用户手册技术资料
- java调用考勤机_zkteco iface702 中控考勤机java开发步骤一---连接考勤机
- mongo按季度统计_三季度国内纯碱市场总结及四季度分析
- 信息系统项目管理师——范围管理论文
- DGUS组态软件中图标旋转显示如何使用
- ROHS认证是什么?
- Python命令行command not found
- debezium报错处理系列七:The database history couldn‘t be recovered. Consider to increase the value for datab
- 29.Silverlight碰撞测试、检测自定义控件碰撞,雷达扫描图之扫描雷达点状态
- 恭喜猛龙获得NBA总冠军
热门文章
- 【总结】1360- 试着降低前端业务复杂度
- 备份win7系统时 弹出服务无法启动错误0x80070422
- sql时间转换时分秒_SqlServer 日期时间格式转换(SQL server date time format conversion).doc...
- 传统TCP(Reno)拥塞响应函数
- SANGFOR 旧防火墙配置怎么导入新防火墙
- 公务员考试——申论3
- 钢条切割(dp解法)
- iOS视频直播:高仿喵播APP
- 「 Offer收割机之JVM」:生存还是毁灭
- 2041:【例5.9】新矩阵