美文网首页Java编程社区
Java学习笔记——封装

Java学习笔记——封装

作者: C语言中文社区 | 来源:发表于2018-09-02 18:50 被阅读18次

声明:本文首发于我的个人微信公众号【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编程社区

相关文章

  • Java学习笔记——封装

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

  • Java中的封装

    学习笔记参考文章:Java中的封装 推荐阅读[https://blog.csdn.net/weixin_43444...

  • Strategy 策略模式

    设计原则学习笔记 设计模式学习笔记 作用 将算法封装起来,使对象可以在不同情况,使用不同算法。 类图 Java实...

  • java笔记--封装

    封装: 是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。 好处: 1 将变化隔离2 便于使用3 提高重用性4...

  • 实现AOP功能的封装与配置的小框架

    内容 java基础巩固笔记 - 实现AOP功能的封装与配置的小框架 设计(目录): XXX = java.util...

  • nio

    参考文章 Java Nio Java NIO学习笔记 - NIO客户端时序图 Java NIO学习笔记 - NIO...

  • Java 学习笔记(13)——lambda 表达式

    title: Java 学习笔记(11)——lambda 表达式tags: [Java 基础, 学习笔记, 函数式...

  • java io

    参考Java IO学习笔记(一):File类Java IO学习笔记(二):RandomAccessFile类Jav...

  • 文章目录

    Markdown学习 Markdown学习 Java学习 Servlet学习笔记 Java问题 Tomcat问题修...

  • 2017-12-30

    JAVA学习日记(6) 封装 : 高内聚低耦合 为什要封装? private > default > protec...

网友评论

    本文标题:Java学习笔记——封装

    本文链接:https://www.haomeiwen.com/subject/gwgmwftx.html