java学习面向对象之封装
2013-09-19 20:51
253 查看
在以往几节当中我们讲到了什么是类,类就是对一类事物的描述,比如现在我们有一个人类
讲了那么多:那么封装的好处在什么地方呢?
封装的定义:封装是指,隐藏对象的属性还有实现细节,仅对外提供公共的访问方式。
但是需要注意的一点是,私有化仅是体现封装的一种方式而已。
封装的好处:
1、将变化隔离;2、便于使用;3、提高重用性;4、提高安全性。
封装的原则:
1、将不需要对外提供的内容都隐藏起来
2、将属性都隐藏起来,提供公共方法对其访问。
class Person { /** *这里我们分别在name和age上加上了元素的访问权限 *这里的private是指,这个变量只能被当前类访问,其他的地方是没法访问到的,即使是当前类的一个实例化对象 *也是没法访问的。那么这里就有一个问题了,我们定义了一个成员变量确没法访问: *这里举一个详细的例子来讲: *我们有一个房子,房子里面放了很多的钱,我们的房子有一个门。在我们没有给这个门加任何的限制的时候,任何人 *都是可以进出的,也就是说他默认的就是public修饰符,这样是不是很危险呢?此时为了安全期间,我们就用墙把这 *个门给堵上了,这样就又出现了一个问题,我们没法取钱啊,我们再换一种方式,我们给这个门加上一把锁,这样 *我们就可以即能限定出入这个对象的人,同时也让我们能够取钱。 *承接上面的描述,现在我们有一把锁,想要进去,是不是得有一把钥匙才可以啊,只要有这把钥匙我们就能够进去 *这个就需要一个公开的成员方法来判断进来的人是好人还是坏人,因为我们之前讲的语句,如if swith等等只能在函数 *当中存在,其他地方他的存在是不合法的 *综上所述,便就是封装 */ private String name; private int age; /** *既然定义了私有成员变量,那么接下来我们来定义一个公开的访问方法才可以,同时这个公开的方法当中有能够起限定作 *用的代码段 */ public void setAge(int n) { /**限制n的范围,防止破坏我们已经封装好了的合理的对象*/ if(n>0&&n<100) age = n; else System.out.print("非法的年龄数值,请检查您的输入是否有误"); } public int getAge() { return age; } void speak() { System.out.print(name+"....."+age); } } class PersonDemo { public static void main(String[] args) { Person p = new Person(); //p.age = 10; //p.age = -10;显然这种定义方式是不正确的,因为他违背了我们正确描述事物的原则 /** *这里我们为了保护我们的数据是在合法范围之内的,就需要界定他的访问权限,让他的值 *在我们的控制范围之内,这个便就是封装 */ /** *在启用封装之后,我们就来调用相关的方法 */ p.setAge(10);//合法赋值 p.setAge(-333);//非法赋值 p.speak(); } }
讲了那么多:那么封装的好处在什么地方呢?
封装的定义:封装是指,隐藏对象的属性还有实现细节,仅对外提供公共的访问方式。
但是需要注意的一点是,私有化仅是体现封装的一种方式而已。
封装的好处:
1、将变化隔离;2、便于使用;3、提高重用性;4、提高安全性。
封装的原则:
1、将不需要对外提供的内容都隐藏起来
2、将属性都隐藏起来,提供公共方法对其访问。
相关文章推荐
- java学习总结(16.06.10~16.06.17)面向对象的三大特征——封装、继承、多态
- 黑马程序员--Java学习日记之面向对象(封装,this和static,继承)
- Java学习第6天:面向对象(4)封装和私有
- 黑马程序员--Java学习日记之面向对象(封装,继承和构造方法)
- Java学习笔记8 面向对象之封装2
- Java学习第六课--面向对象的三大特性(封装、继承和多态)
- Java学习之旅基础知识篇:面向对象之封装、继承及多态
- 【java学习】面向对象三大特性:封装,继承,多态
- 面向对象三大特征之封装与static——(Java学习笔记四)
- 大三学长带我学习JAVA.作业5.面向对象之封装 面向对象之封装.续 学长带我学java的作业5
- 黑马程序员java学习笔记——面向对象的特征封装、继承和多态
- 黑马程序员 java学习笔记——面向对象1:封装
- java基础学习面向对象之封装 五-2
- java学习日记_18:面向对象之封装的好处和原则。07.05
- Java学习——面向对象之封装
- Java学习之旅基础知识篇:面向对象之封装、继承及多态
- Java学习笔记十八:Java面向对象的三大特性之封装
- Java面向对象的三大特性 封装
- Python 学习笔记 - 面向对象(封装,继承和多态)
- Java程序员从笨鸟到菜鸟之(三)面向对象之封装,继承,多态(下)