Java学习之封装
2016-05-14 18:03
169 查看
封装是指隐藏对象属性和实现细节,仅对外提供公共访问方式。
好处:
隐藏实现细节,提供公共访问方式;
提高代码的复用性;
提高安全性。
封装原则:
将不需要对外提供的内容都隐藏起来;
把属性隐藏,提供公共访问方法对其访问。
实例:
定义一个学生类:
成员变量:name age
成员方法:show()
我们在使用这个案例的时候,;通过对象给成员赋值,发现会有一些非法的数据也被赋值使用,这是不合理的,所以我们应该在赋值之前对数据进行校验。那么该在什么位置进行校验呢?
StudentDemo是一个测试类,测试类中一般只进行对象的创建和方法的调用。所以这个校验应该定义在Student类中,我们在成员变量位置是不可以进行数据校验的,因为进行数据校验需要用到一些逻辑语句,逻辑语句应该定义在方法中,所以我们应该在Student中提供一个方法来进行数据校验。
按照上面的分析,我们进行了数据校验,但是如果我们不调用方法来赋值,而是直接赋值,这样我们的校验方法就没有起到作用,那么如何强制使用我的方法,而不是直接给成员变量赋值呢?针对这种情况,Java提供了一个关键字private。
private:私有的,可以修饰成员变量和成员方法
被private修饰的成员只能在本类中访问。
上面所讲的也就是一个封装的思想,隐藏对象属性和实现细节,仅对外提供公共访问方式。
好处:
隐藏实现细节,提供公共访问方式;
提高代码的复用性;
提高安全性。
封装原则:
将不需要对外提供的内容都隐藏起来;
把属性隐藏,提供公共访问方法对其访问。
实例:
定义一个学生类:
成员变量:name age
成员方法:show()
我们在使用这个案例的时候,;通过对象给成员赋值,发现会有一些非法的数据也被赋值使用,这是不合理的,所以我们应该在赋值之前对数据进行校验。那么该在什么位置进行校验呢?
StudentDemo是一个测试类,测试类中一般只进行对象的创建和方法的调用。所以这个校验应该定义在Student类中,我们在成员变量位置是不可以进行数据校验的,因为进行数据校验需要用到一些逻辑语句,逻辑语句应该定义在方法中,所以我们应该在Student中提供一个方法来进行数据校验。
按照上面的分析,我们进行了数据校验,但是如果我们不调用方法来赋值,而是直接赋值,这样我们的校验方法就没有起到作用,那么如何强制使用我的方法,而不是直接给成员变量赋值呢?针对这种情况,Java提供了一个关键字private。
private:私有的,可以修饰成员变量和成员方法
被private修饰的成员只能在本类中访问。
上面所讲的也就是一个封装的思想,隐藏对象属性和实现细节,仅对外提供公共访问方式。
相关文章推荐
- Java NIO系列教程(二) Channel
- RxJava之转换操作符
- [原创]java WEB学习笔记05:Servlet中的ServletConfig对象
- Spring框架初探【1】
- java泛型总结(一)
- 基于Spring4.x 搭建 Spring MVC + MyBatis
- 一天一个Java基础——通过异常处理错误
- 【J2SE】java的流概念
- 开源jxls - java导Excel(多sheet) - 模板文件定义类似jsp的el表达式
- JAVA之旅(三)——数组,堆栈内存结构,静态初始化,遍历,最值,选择/冒泡排序,二维数组,面向对象思想
- JAVA之旅(三)——数组,堆栈内存结构,静态初始化,遍历,最值,选择/冒泡排序,二维数组,面向对象思想
- Java Serializable(序列化)实例 第二部分
- Spring源码解读--init属性和预实例化(延迟加载)
- java使用jxls导出excel功能
- spring IOC容器:控制反转
- Spring Mvc那点事---(4)Spring Mvc控制器Controller
- Java中值传递与引用传递
- 69道Spring面试题和答案
- java设计模式-观察者模式学习
- java入门之中文输出问题