Java三大特性,五大原则,深刻解读,读完这一篇就够了!
目录:
- 三大基本特征:
- 一.封装:
- 理解:
- 模拟问题:
- 封装的好处:
- 二.继承:
- 概念:
- 优点和缺点:
- 使用:
- 使用场景":
- 继承中构造方法的访问特点:
- 继承中构造方法的访问特点-父类没有空参构造方法:
- 使用继承的注意事项:
- 三.多态:
- 概念:
- 多态的前提:
- 多态的好处和弊端:
- 多态中转型:
- 五大基本原则:
- 一.单一责任制原则:
- 优点:
- 缺点:
- 使用场景:
- 二.开放密闭原则:
- 概念:
- 作用:
- 案例:
- 优点:
- 三.里氏替换原则:
- 概念:
- 举例说明:
- 提示:
- 四.依赖倒置原则:
- 定义:
- 问题:
- 解决方案:
- 理解:
- 实例:
- 注意:
- 五.接口隔离原则:
- 定义:
- 解决方案:
- 理解:
- 接口隔离原则的含义是:
三大基本特征:
一.封装:
理解:
我们日常使用的电脑主机,把cpu、内存、主板等等都封装到机箱里面去。假如没有机箱的话的出现什么问题,主机、主板全部都散落在一处,然后开机没有开机按钮,那么需要我们直接操作接跳线才能把电脑开启。这样子的话假如操作不慎的话,会让机器损坏危险,那么假如用机箱封装起来的话,那么就不需要这样子做了。体现了封装的—安全特性。
你拿电脑去加内存,可以直接给电脑给维修的人,等他加好内存了之后。你拿到的还是那个机箱,里面发生了怎样子的变化你并不知道。封装的第二个好处-将变化隔离。
在机箱里面提供一个开机按钮,而不需要你直接使用跳线开机的话,体现了封装的—便于使用的特性。
只要机箱提供了一个开机的功能,然后无论这个机箱拿到哪里去,都可以使用这个开机的功能.体现了封装的—提供重复性的特性。
对比一下没有封装和有封装~
没有封装的时候
模拟问题:
- 描述Employee类。定义姓名,工号,性别的成员变量,和工作的方法。成员使用public修饰。
- 创建Employee对象,对象.成员的方式进行赋值。最后该对象调用工作方法。
- 总结:如果不使用封装,很容易赋值错误,并且任何人都可以更改,造成信息的 不安全。
- 问题解决:使用封装
/*** @Author: NanQiang* @Date: 2020/7/15 11:18*/
public class EmployeeDemo {public static void main(String[] args) {// 创建对象Employee jack = new Employee();// 进制通过类名.成员的形式调用成员。初始化实例变量jack.name = "jack";jack.id = "123456";jack.gender = "男";// 调用成员方法jack.work();System.out.println();// 传入非法的参数jack.gender = "不是男人";jack.work();}
}class Employee {String name;String id;String gender;public void work() {System.out.println(id + ":" + name + ":" + gender + " 努力工作中!!!");}
}
有封装的时候
设置类的属性为private(关键字),不能使用对象名.属性名的方式直接访问对象的属性。
/*** @Author: NanQiang* @Date: 2020/7/15 11:18*/
public class EmployeeDemo {public static void main(String[] args) {// 创建对象Employee jack = new Employee();//编译报错jack.name = "jack";jack.id = "123456";jack.gender = "男";// 编译报错jack.gender = "不是男人";jack.work();}
}class Employee {//使用了private修饰了成员变量private String name;private String id;private String gender;public void work() {System.out.println(id + ":" + name + ":" + gender + " 努力工作中!!!");}
}
修改Employee类 性别的修饰符修改为private
1:编译不通过
2:private修饰的成员在自己所在的类中可以使用,在类外边不可以使用。
3:Employee类的gender的修饰符修改为private后,无法再类外调用,那么如何给gender设置值?
1:对外提供公开的用于设置对象属性的public方法1:设置set2:获取get2:在set方法中加入逻辑判断,过滤掉非法数据。3:将所有的成员变量封装加上private,提供get、set方法
权限修饰符:
/*** @Author: NanQiang* @Date: 2020/7/15 11:18*/
public class EmployeeDemo {public static void main(String[] args) {// 创建对象Employee jack = new Employee();// 调用公有方法,给成员变量赋值。jack.setId("007");jack.setName("jack");jack.setGender("男xx");// 获取实例变量的值System.out.println(jack.getGender());System.out.println(jack.getId());System.out.println(jack.getName());// 调用成员方法jack.work();}
}class Employee {private String name;private String id;private String gender;// 提供公有的get set方法public String getName() {return name;}public void setName(String n) {name = n;}public String getId() {return id;}public void setId(String i) {id = i;}public String getGender() {return gender;}public void setGender(String gen) {if ("男".equals(gen) || "女".equals(gen)) {gender = gen;} else {System.out.println("请输入\"男\"或者\"女\"");}}public void work()
Java三大特性,五大原则,深刻解读,读完这一篇就够了!相关推荐
- 面向对象三大特性五大原则 + 低耦合高内聚
面向对象的三大特性是"封装."多态"."继承",五大原则是"单一职责原则"."开放封闭原则"."里氏 ...
- java三大特性、五大原则
java三大特性 1.封装 隐藏类的属性和功能实现,增强类的安全性和简化编程,通过提供公用接口,以特定的访问权限来使用类成员. 2.继承 对共有的特性和行为进行抽取,形成父类,继承就是子类继承父类的特 ...
- java三大特性:封装、继承、多态
2019独角兽企业重金招聘Python工程师标准>>> 至今记得若干年前,去面试排了半天的队,到我的时候,面试官问我的第一个问题,java三大特性是什么~我支支吾吾的没有答全~0.0 ...
- Java三大特性(封装、继承、多态)详细讲解
文章目录 封装 1 封装的好处 2 简单实现 继承 一.类继承简单实现 父类:动物类 子类 猫类 狗类 二.类继承的详细讲解 1. 类继承中成员变量的访问 1.1 成员变量之间的访问 (变量不重名的情 ...
- Java继承_Hachi君浅聊Java三大特性之 封装 继承 多态
Hello,大家好~我是你们的Hachi君,一个来自某学院的资深java小白.最近利用暑假的时间,修得满腔java语言学习心得.今天小宇宙终于要爆发了,决定在知乎上来一场根本停不下来的Hachi君个人 ...
- java三大特性 继承_java基础(二)-----java的三大特性之继承
在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情.在这句 ...
- Java提高篇 —— Java三大特性之继承
一.前言 在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事 ...
- java 三大特性理解_java 三大特性--封装、继承和多态理解
java 三大特性--封装.继承和多态理解 封装 /** * 所谓封装,就是将对象具有的成员变量和成员函数包装和隐藏起来,让外界无法直接使用, * 被封装的成员只能通过某些特定的方式才能访问. * 实 ...
- Java三大特性:封装,继承与多态
(尊重劳动成果,转载请注明出处:https://blog.csdn.net/qq_25827845/article/details/84592274冷血之心的博客) 目录 (一)封装 封装的定义 封装 ...
- Java 使用itextPdf7操作pdf,写入照片这一篇就够了
Java 使用itextPdf7操作pdf,写入照片这一篇就够了 1. 效果图 1.1 M*N列图片(无边界&有边界) 1.2 图片重叠 1.3 文字背景图片 1.4 图片与文字相邻 & ...
最新文章
- mysql权限的误操作的恢复
- Android system server之WindowManagerService按键消息传播流程
- Xcode7 (Xcode setting ENABLE_BITCODE)
- 强化学习1——策略,价值函数,模型
- ExtJs2.0学习系列(9)--Ext.TabPanel之第一式
- 小米MIX4最新渲染图曝光;苹果首款OLED iPad将于2023年问世;格力将引进鸿蒙操作系统|极客头条...
- Python发邮件的小脚本
- 【综述】跨语言自然语言处理笔记
- find linux 目录深度_15种方法找出Linux系统中最大的N个文件,你懂几种?
- 封装和private关键字
- 研发团队绩效管理如何做?
- Kettle【实践 04】Java环境实现KJB和KTR脚本文件执行v9版本9.0.0.0-423相关依赖说明(云资源分享:依赖包+kjb+ktr+测试源码)
- mac如何升级python,Mac更新Python
- PBR来龙去脉篇一:光和人眼感知颜色
- Win10 电脑能够连接手机热点,但是不能上网。windows热点服务无法自动开启。
- JVM_12 垃圾回收3-垃圾回收器
- 【flask】适合生产环境的高并发部署方案(gunicorn + gevent + supervisor)
- MySQL中tinytext、text、mediumtext和longtext等类型详解
- 2019京东618活动提报要求一览
- alu和mdr位数相等吗_计算机组成原理复习