码迷,mamicode.com
首页 > 编程语言 > 详细

java特性之封装

时间:2017-05-25 00:15:24      阅读:285      评论:0      收藏:0      [点我收藏+]

标签:cal   integer   属性   实现   let   设置   等等   理解   工作   

Java有三大特性:封装,继承,多态,这是java这门语言的核心 。在java的学习中,我们一定听过“一切皆对象 ”,简单来说就是一个一个的java类,有的java类是用来描述对象的一些属性的,如sshssm中的实体类 ,还有的是用来和页面进行交互的,如servlet。其实这些对象在程序中可以理解为一个个基础的模块 ,这些模块分工不同,功能不同。Java是面向对象的,就说它是面向一个个单独的模块的,在java程序中,其实就和组装电脑是一样的,用那种型号的cpu,显卡,主板,去相应的硬件模块进行选择就行了,简单来说这就是java的面向对象 。封装就相当于封装这里我说的硬件模块,把硬件模块里面的细节隐藏起来,别人不知道硬件是怎么样实现对应功能。

封装的好处:

1.可以让程序更加安全,封装之后,外部无法直接访问对应的模块,必须通过该模块的接口访问。

2.可以降低程序间的耦合,封装的目的就是让其成为一个独立的模块,模块之间的相互独立耦合肯定降低。

3.隐藏内部实现细节,通过权限访问修饰符控制类的细节与外界隔离起来,从而实现数据项和方法的隐藏,而要访问这些数据项和方法唯一的途径就是通过类本身,类才有资格调用它所拥有的资源(方法,数据项属性等等)。

package com.hulian.entity;

/**
 * Created by ethan on 2017/5/24.
 */
public class CPU {
    //将属性私有化
    private Integer temp;
    private String type;

    //对外开放的访问接口
    public Integer getTemp() {
        return temp;
    }

    public void setTemp(Integer temp) {
        this.temp = temp;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }
}

这是一个常见的封装,将cpu的温度,和型号 私有化,对外提供访问接口,在这里可以更加灵活的控制对外访问的接口,cputype是出厂就有的,可以将typesetter接口取消,只保留getter接口。我们还可以给CPU 设置温度的范围:

package com.hulian.entity;

/**
 * Created by ethan on 2017/5/24.
 */
public class CPU {
    //将属性私有化
    private Integer temp;
    private String type;

    //对外开放的访问接口
    public Integer getTemp() {
        return temp;
    }

    public void setTemp(Integer temp) {
        if (temp>100||temp<-50){
            System.out.println("cpu 不能工作 ");
        }
        this.temp = temp;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }
}

可以看出我们可以对属性进行精确的控制。还可以对属性进行转换,比如在设置性别的时候讲传入的short类型的0,1转出String类型的男女。

java特性之封装

标签:cal   integer   属性   实现   let   设置   等等   理解   工作   

原文地址:http://www.cnblogs.com/SoulEthan/p/6901330.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!