网站首页 > java教程 正文
众所周知于谦有三大爱好:抽烟、喝酒、烫头,面向对象也有三大特性:封装、继承和多态。
1.封装
1.1为什么使用封装
该段程序可以使用,但在数据的安全上存在隐患,对属性中的数据可以随时改变
直接使用对象操作属性,可能会产生一些隐患
1.2 使用封装修改以上程序:
为属性添加getter和setter方法
在方法内部进行存取限制:
1.3封装的步骤:
1、修改属性的访问权限:将属性的访问权限修改为private(私有的,只能当前类使用)
2、为属性添加相关的公共操作方法:增加getter和setter方法(这两个方法为标准的JavaBean方法)
3、在getter和setter方法内部实现数向的存取限制操作
1.4 封装的好处:
(1) 隐藏数据,外部不能直接操作属性
(2) 便于数据的传递
一个类中可以定义多个构造方法
2.继承
存在继承关系的实体一般具有is-a的关系(谁是谁的关系)
在继承关系中,父类更加通用,子类更加具体,父类是所有子类共性的抽象
在开发中使用继承可以大大简化代码量
2.1 Java中的类使用的是单继承机制,但Java使用接口弥补了单继承机制的不足
2.2 Java中使用extends关键来实现继承
2.4 当一个类继承了一个父类后,则该类自动拥有父类中所有的非私有的属性和方法
2.5 继承在执行时,必须先创建父类对象然后才能创建子类的对象
2.5.1Java中创建对象必须调用构造方法
父类显式的定义了带有参数的构造方法后,默认的无参数的构造方法自动消失,子类就必须在子类的构造方法中显式的调用父类的有参数的构造方法
super()调用父类的构造方法,而且该调用必须存在与子类构造方法的第一行
super关键字在子类中表示父类对象的一个引用
继承的好处:
1. 提高代码的复用度,降低代码量
2. 让类与类之间的结构性更强
继承的缺点
1. 违反了高内聚,低耦合的原则
3.多态
3.1方法重写(Override)
方法重写存在于子父类之间,子类中的某个方法重写父类中的某个方法
Java中不存在属性的重写和构造方法的重写
重写规则:
方法的声明部分一致(含,方法的返回类型一致,方法的方法名一致,方法的参数列表一致,方法的异常抛出一致,但方法的访问权限可以不一致<子类的权限不能小于父类的权限>),方法体不一致
3.2方法重写的好处
方法重写是Java中实现多态的一种表现形式
3.3多态的简单使用
多态:同一类对象在相同环境下根据具体使用的对象不同具有不同的操作
在存在子父类关系的类中,如果使用父类声明,子类对象做为具体值
Teacher t = new JavaTeacher("弓长","某某大学");
对象t能够调用到的方法必须是父类中已声明的方法,但在执行期运行的方法如果子类重写了父类中的方法则执行子类中的方法,如果子类没有重写父类中的方法则执行的还是父类中的方法
3.4多态的好处:
1. 提高系统的可维护性
2. 提高系统的可扩展性
3. 提高系统的灵活性
猜你喜欢
- 2024-10-21 从零学java笔录-第39篇 基础第二阶段 1 面向对象思想及概述
- 2024-10-21 C/C++编程笔记:C++面向对象和Java面向对象的区别
- 2024-10-21 面向对象—java中类与对象#java基础
- 2024-10-21 Java面向对象特征(java的面向对象特征)
- 2024-10-21 Java基础语法之面向对象(java中的面向对象)
- 2024-10-21 Java面向对象概念解析(java面向对象的意思)
- 2024-10-21 java中的面向对象总结(java中的面向对象总结法是什么)
- 2024-10-21 有图有码,带你重新认识java面向对象三大特性!
- 2024-10-21 java面向对象总结(java面向对象知识点总结)
- 2024-10-21 Java基础:Java面向对象的特征(java面向对象的主要特征)
你 发表评论:
欢迎- 07-21如何将 iPhone 中的联系人导出到 Excel/CSV?
- 07-21sql查询的字段数据中有逗号。放到csv文件会分开,如何解决?
- 07-21在 WebAPI 里生成 csv zip 文件(webapi怎么发布在iis上)
- 07-21如何把csv格式转换成Excel格式(csv格式怎么转换)
- 07-21如何将高程导出为XYZ或CSV高程点(如何将高程数据导入cad)
- 07-21使用python把csv汇总成excel(python怎么将csv文件中的列存入列表)
- 07-21解决PHP导出CSV文件中文乱码问题(php导出excel文件)
- 07-21使用vba将Excel 文件转成 CSV 文件
- 最近发表
-
- 如何将 iPhone 中的联系人导出到 Excel/CSV?
- sql查询的字段数据中有逗号。放到csv文件会分开,如何解决?
- 在 WebAPI 里生成 csv zip 文件(webapi怎么发布在iis上)
- 如何把csv格式转换成Excel格式(csv格式怎么转换)
- 如何将高程导出为XYZ或CSV高程点(如何将高程数据导入cad)
- 使用python把csv汇总成excel(python怎么将csv文件中的列存入列表)
- 解决PHP导出CSV文件中文乱码问题(php导出excel文件)
- 使用vba将Excel 文件转成 CSV 文件
- python爬虫25 | 爬取的数据怎么保存?CSV了解一下
- MySQL 导出数据(mysql 导出数据 判断成功)
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)