资讯专栏INFORMATION COLUMN

Java学习笔记——封装

linkFly / 1621人阅读

摘要:声明本文首发于我的个人微信公众号编程社区,查看更多文章与学习资源请移步我的公众号编程社区今天我们来看看面向对象的三大特征之一封装下来我们从现实生活中的例子来聊聊封装的特性我们日常使用的电脑主机,把内存主板等等都封装到机箱里面去。

声明:本文首发于我的个人微信公众号【Java编程社区】,查看更多文章与学习资源请移步我的公众号Java编程社区

今天我们来看看面向对象的三大特征之一——封装

下来我们从现实生活中的例子来聊聊封装的特性

我们日常使用的电脑主机,把CPU、内存、主板等等都封装到机箱里面去。假如没有机箱的话出现什么问题,主机、主板全部都散落在一处,然后开机没有开机按钮,那么需要我们直接操作跳线才能把电脑开启。这样子如果操作不慎的话,机器就有损坏的危险。因此,为了安全,现实生活中我们有机箱将CPU、内存、主板等等封装起来。这样就体现了封装的安全性

你拿着电脑去加内存,可以直接把电脑给维修的人,等他加好内存之后,你拿到的还是那个机箱,里面发生了怎样的变化你并不知道。封装的第二个好处——将变化隔离

在机箱上提供一个开机按钮,而不需要你直接使用跳线开机的话,体现了封装的便于使用的特性

将这个机箱无论拿到什么地方,都可以使用开机的功能,体现了封装的提供重复性的特性。

我们在来通过代码的对比来了解封装

模拟问题

1、描述Employee类,定义姓名、工号、性别的成员变量和工作的方法

2、创建Employee对象,对象.成员的方式进行赋值,最后该对象调用工作的方法。

不使用封装的情况

public class EmployeeDemo{
    public static void main(String[] args) {
        //创建对象
        Employee employee = new Employee();
        employee.name = "zhangsan";
        employee.id = "1234";
        employee.gender = "男";        
        //调用成员方法
        employee.work();
        System.out.println();        
        //传入非法的参数
        employee.gender = "不是男人";
        employee.work();
    }
}
class Employee{
    String name;
    String id;
    String gender;    
    public void work() {
        System.out.println(id + ":" + name + ":" + gender + "努力工作中!");
    }
}

执行结果

使用封装

设置类的属性private关键字,不能使用对象名.属性名的方式直接访问对象的属性。

总结:如果不使用封装,很容易赋值错误,并且任何人都可以更改,造成信息的不安全。

那么问题来了

为什么之前可以通过对象名.属性名的方式访问?

使用private修饰属性后,无法在类外边调用,那么如何给属性赋值?

答案是:

public修饰符是公共的,谁都可以访问

private修饰符是私有的,只有自己可以访问

属性被private修饰后,我们可以通过get,set方法对属性进行设值和取值

请看下边代码:

执行结果:

封装就分享到这了,后续会继续分享,敬请期待!

声明:本文首发于我的个人微信公众号【Java编程社区】,查看更多文章与学习资源请移步我的公众号Java编程社区

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/76970.html

相关文章

  • Java进阶之路

    摘要:探索专为而设计的将探讨进行了何种改进,以及这些改进背后的原因。关于最友好的文章进阶前言之前就写过一篇关于最友好的文章反响很不错,由于那篇文章的定位就是简单友好,因此尽可能的摒弃复杂的概念,只抓住关键的东西来讲,以保证大家都能看懂。 周月切换日历 一个可以进行周月切换的日历,左右滑动的切换月份,上下滑动可以进行周,月不同的视图切换,可以进行事件的标记,以及节假日的显示,功能丰富 Andr...

    sushi 评论0 收藏0
  • java&javaweb学习笔记(汇总)

    摘要:我的学习笔记汇总标签笔记分为两大部分和笔记内容主要是对一些基础特性和编程细节进行总结整理,适合了解基础语法,想进一步深入学习的人如果觉得不错,请给,这也是对我的鼓励,有什么意见欢迎留言反馈目录基础巩固笔记反射基础巩固笔记泛型基础巩 我的java&javaweb学习笔记(汇总) 标签: java [TOC] 笔记分为两大部分:javase和javaweb javase javawe...

    yagami 评论0 收藏0
  • Spark综合学习笔记(三)搜狗搜索日志分析

    摘要:学习致谢一数据数据网站二需求针对用户查询日志数据中不同字段,使用读取日志数据,封装到数据集中,调用函数和函数进行处理不同业务统计分析三分词工具测试使用比较流行好用的中文分区面向生产环境的自然语言处理工具包,是由一系列模 ...

    AZmake 评论0 收藏0
  • Spring框架学习笔记(一):官方文档介绍,IoC与AOP概念学习

    摘要:构造函数注入通过调用类的构造函数,将接口实现类通过构造函数变量传入。而在中,其使用横切技术,将这类代码从原属的封装对象中提取出来,封装到一个可重用模块中,称为。 最近实习用到Spring的开发框架,但是之前没有接触过,因此希望利用网上的资源来学习以下。 Spring官方给出了非常全面的介绍,非常适合我这种完全的小白……在这一系列学习中,我阅读的主要资源是5.1.2 Reference ...

    mindwind 评论0 收藏0
  • Java学习笔记——面向对象

    摘要:对象既是该类事物实实在在存在的个体。类与对象的关系图类就是汽车汽车就是堆内存中的对象。成员变量成员变量成员函数的车,轮胎数个,跑起来了对象的创建创建对象中创建对象,使用关键字在堆内存中开辟了空间,产生了一个实体。 声明:本文首发于我的个人微信公众号【Java编程社区】,查看更多文章与学习资源请移步我的公众号Java编程社区 万物皆对象 学习Java,我们都听过这句话:万物皆对象。那么什...

    DoINsiSt 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<