大家好,我是卷心菜,大二学生一枚,本篇主要讲解Java面向对象的三大特征之一:封装性。如果您看完文章有所收获,可以三连支持博主哦~,嘻嘻。


文章目录

  • 一、设计思想
  • 二、权限修饰符
  • 三、作用范围
  • 四、使用细节
  • 五、代码举例

一、设计思想

  • 封装性的思想:以类为载体,将类的属性、行为(可以理解为Java中的方法)封装起来,对使用者隐藏其具体实现细节,只对外公开简单的接口。大白话就是说,该隐藏的隐藏,该暴露的暴露。
  • 封装性的目的:便于外界调用,避免外部操作对类内部数据的影响,从而提高系统的可扩展性、可维护性。

二、权限修饰符

Java中有四种权限修饰符,作用范围从小到大依次是:

  • private
  • 缺省(就是什么都不写)
  • protected
  • public

用代码体现就是:

public class One {private int age;String name;protected String major;public char gender = '男';
}

三、作用范围

刚刚讲过了,这四种权限修饰符有不同的作用范围,那么它们的作用范围到底是什么呢?

修饰符 类内部 同一个包 不同包的子类 同一个工程
private YES
缺省 YES YES
protected YES YES YES
public YES YES YES YES

四、使用细节

4种权限可以用来修饰类及类的内部结构:

属性、方法、构造器、内部类

注意:修饰类的话,只能使用:缺省、public,不然就会出现编译型异常

总结封装性:Java提供了4种权限修饰符来修饰类及类的内部结构,体现类及类的内部结构在被调用时的可见性的大小。


五、代码举例

编写一个类,有四个成员变量,其中一个权限修饰符为public,其余都是private,都有对应的getter()和setter():

public class One {private int age = 20;private String name = "cabbage";private String major = "计算机科学与技术";public char gender = '男';public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getMajor() {return major;}public void setMajor(String major) {this.major = major;}public char getGender() {return gender;}public void setGender(char gender) {this.gender = gender;}
}

最后写一个测试类:

public class TestDemo {public static void main(String[] args) {One one = new One();one.gender = '女';one.setAge(21);one.setName("hello");one.setMajor("大数据");System.out.println(one.gender);System.out.println(one.getAge());System.out.println(one.getName());System.out.println(one.getMajor());}
}

运行结果:

从代码和运行结果可以看出,属性gender权限修饰符作用范围最大,在测试中,可以直接通过"对象.方法"来改变属性值,这样就不符合封装性的思想,破坏了封装性;其它的三个属性值的改变,都是通过setter()和getter()来修改的,确保了封装性思想的落实:隐藏该隐藏的。


通过将属性声明为私有的private,再提供共有的public方法setter()和getter()来实现对属性的操作。来实现以下的目的:

  • 隐藏类中不需要对外提供的实施细节
  • 用户只需要通过实现定制好的方法访问数据,可以方便的加入控制逻辑,限制对属性的不合理操作
  • 便于修改,增强代码的可维护性

谢谢阅读,一起进步,嘻嘻~

Java三大特性的第一个分水岭——封装性相关推荐

  1. java三大特性:封装、继承、多态

    2019独角兽企业重金招聘Python工程师标准>>> 至今记得若干年前,去面试排了半天的队,到我的时候,面试官问我的第一个问题,java三大特性是什么~我支支吾吾的没有答全~0.0 ...

  2. Java继承_Hachi君浅聊Java三大特性之 封装 继承 多态

    Hello,大家好~我是你们的Hachi君,一个来自某学院的资深java小白.最近利用暑假的时间,修得满腔java语言学习心得.今天小宇宙终于要爆发了,决定在知乎上来一场根本停不下来的Hachi君个人 ...

  3. Java三大特性(封装、继承、多态)详细讲解

    文章目录 封装 1 封装的好处 2 简单实现 继承 一.类继承简单实现 父类:动物类 子类 猫类 狗类 二.类继承的详细讲解 1. 类继承中成员变量的访问 1.1 成员变量之间的访问 (变量不重名的情 ...

  4. java 三大特性理解_java 三大特性--封装、继承和多态理解

    java 三大特性--封装.继承和多态理解 封装 /** * 所谓封装,就是将对象具有的成员变量和成员函数包装和隐藏起来,让外界无法直接使用, * 被封装的成员只能通过某些特定的方式才能访问. * 实 ...

  5. java三大特性 继承_java基础(二)-----java的三大特性之继承

    在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情.在这句 ...

  6. Java提高篇 —— Java三大特性之继承

    一.前言 在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事 ...

  7. java三大特性、五大原则

    java三大特性 1.封装 隐藏类的属性和功能实现,增强类的安全性和简化编程,通过提供公用接口,以特定的访问权限来使用类成员. 2.继承 对共有的特性和行为进行抽取,形成父类,继承就是子类继承父类的特 ...

  8. Educoder–Java高级特性(第一章)- IO流【笔记+参考代码】

    Educoder–Java高级特性(第一章)- IO流[笔记+参考代码] 第一关 1.下列关于字节和字符的说法正确的是(BC) A.字节 = 字符 + 编码 B.字符 = 字节 + 编码 C.字节 = ...

  9. java面向对象的特征封装_Java总结-Java面向对象的基本特征之一:封装性

    作者:nyist-tc-岑国玉 来源:牛客网 Java面向对象的基本特征之一:封装性 封装性: 1.封装性的目的:保护某些属性和方法不被外部所看见. //这里说一下自己学linux时老师教我这个封装类 ...

  10. Java三大特性:封装,继承与多态

    (尊重劳动成果,转载请注明出处:https://blog.csdn.net/qq_25827845/article/details/84592274冷血之心的博客) 目录 (一)封装 封装的定义 封装 ...

最新文章

  1. Google与Binomial合作开源Basis Universal GPU纹理编解码器
  2. 聊一聊mongodb中的 explain 和 hint
  3. (76)FPGA随机函数($dist_uniform)
  4. 《A Practical Guide to Continuous Delivery》作者访谈录
  5. 根据用户查进程_Linux进程之如何查看进程详情?
  6. Redis 常见的性能问题和解决方法
  7. 网络工程师还要学linux吗,网络工程师要学什么
  8. win10(win8)上安装miniTool后出现请手动安装fastboot驱动问题
  9. C++派生类与继承(超详细)
  10. SpringBoot版本升级
  11. ipad部分截屏方法
  12. 创维YS代工E900V21E/TY1608-S905l3B-8822CS及7668无线通刷线刷包
  13. Radius/Free Radius/Diameter协议
  14. IOS启动动画(广告)
  15. 音乐节拍识别 计算机,科学网—音乐节拍跟踪或音乐节拍检测软件,LilyBeats alpha - 石自强的博文...
  16. uboot研读笔记 | 05 - 移植uboot 2012.04到JZ2440(支持Nand Flash读写)
  17. allegro生成不规则钻孔
  18. ubuntu虚拟机双网卡无法上网问题
  19. 网页图片尺寸查看方法
  20. 软件需求分析——需求工程过程

热门文章

  1. 驱动人生病毒清除教程
  2. 【深入理解JS核心技术】12. 什么是一阶函数
  3. 盘点:2012中国互联网大会十大亮点
  4. GreenSock2
  5. 程序匠人 - 程序调试(除错)过程中的一些雕虫小技
  6. 数字电路与逻辑设计计算机专业,数字电路与逻辑设计试卷(A)(04级计算机、网络工程、软件工程专业).doc...
  7. 非常有价值的JAVA开源项目
  8. 记事本编写java_如何使用记事本编写java程序
  9. ipv6中ospfv3不再支持_超星尔雅《2020年考研英语全程班》2020第五章节测验题库及试题答案...
  10. 微型计算机原理与接口技术第六版课后答案,微型计算机原理与接口技术(第6版)...