Java学习笔记——封装

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

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

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

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

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

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

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

咱们在来经过代码的对比来了解封装对象

模拟问题token

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

二、建立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 + "努力工做中!");
    }
}

执行结果

clipboard.png

使用封装

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

clipboard.png

总结:若是不使用封装,很容易赋值错误,而且任何人均可以更改,形成信息的不安全。

那么问题来了

  • 为何以前能够经过对象名.属性名的方式访问?
  • 使用private修饰属性后,没法在类外边调用,那么如何给属性赋值?

答案是:

  • public修饰符是公共的,谁均可以访问
  • private修饰符是私有的,只有本身能够访问
  • 属性被private修饰后,咱们能够经过get,set方法对属性进行设值和取值

请看下边代码:

clipboard.png

clipboard.png

执行结果:

clipboard.png

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

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

相关文章
相关标签/搜索