JavaSE面向对象之封装
来源:互联网 发布:卸载windows kits 编辑:程序博客网 时间:2024/04/29 04:44
首先我们通过一个实例来感受一下封装:
/** * 封装的学习 * @author daoyuan * */class Teacher{ public int age; public String name; public String tell(){ return "我是"+name+",我今年"+age; }}public class FengzhuangDemo { public static void main(String[] args) { // TODO Auto-generated method stub Teacher t = new Teacher(); t.name="Tom"; t.age=-10; System.out.println(t.tell()); }}
我们可以看出在主函数中我们可以给对象的name属性赋值,可以正常运行但是却不符合常理,为了满足对于合理性的要求,这里我们要用到封装。
封装的定义
就是隐藏实现细节,将属性私有化,提供公有方法访问私有属性,通过这些公有方法访问私有属性 。
封装的实现
1、修改属性的可见性来限制对属性的访问
2、为每个属性创建一对赋值(setter)方法和取值(getter) 方法,用于对这些属性的访问
3、在setter和getter方法中,加入对属性的存取限制
对于上面的例子我们用封装再实现一遍:
class Teacher1{ private String name; private int age; public int getAge() { return age; } public void setAge(int age) { if (age<0 || age>150) { System.out.println("错误"); this.age=22; } else { this.age = age; } } public String getName() { return name; } public void setName(String name) { this.name = name; } public String tell(){ return "我是"+name+",我今年"+age; }}public class FengzhuangDemo { public static void main(String[] args) { // TODO Auto-generated method stub Teacher1 t = new Teacher1(); t.setName ("Tom"); t.setAge(10); System.out.println(t.tell()); Teacher1 t1 = new Teacher1(); t1.setName ("Jim"); t1.setAge(-10); System.out.println(t1.tell()); }}
这里当我们输入一个不符合要求的数字时,程序会提示出错,并自动赋值22.
故使用封装,增加了数据访问限制,增强了程序的可维护性
封装的优点
1、隐藏一个类的实现细节 2、防止对封装数据的未经授权的访问 3、有利于保证数据的完整性 4、便于修改,增强代码的可维护性 5、有选择地向外界提供数据
0 0
- JavaSE面向对象之封装
- JavaSE第九讲:面向对象之封装
- JavaSE (九)面向对象之封装
- JavaSE面向对象-封装
- javaSE-面向对象-封装特性
- JavaSE面向对象封装笔记
- JavaSE第十讲:面向对象之封装 续
- JavaSE第十一讲:面向对象之封装 续二
- JavaSE入门学习13:Java面向对象之封装
- javase面向对象三大特性之封装
- JavaSE (十)面向对象之封装续......
- JavaSE (十一)面向对象之封装续2......
- javaSE之面向对象
- JAVASE之面向对象
- JavaSE阶段1_面向对象封装
- 面向对象之封装
- 面向对象之封装
- 面向对象之封装
- Jenkins进阶系列之——18Jenkins语言本地化
- Redis命令操作代理封装
- 关于 字符串的转化 java
- XMPPFramwork 环境搭建
- TBB之task
- JavaSE面向对象之封装
- 逆波兰表达式
- 自定义 NSLog 显示打印所在行
- MemcachedClient 使用incr()和decr()方法出现异常
- Redis键值设计
- BFC
- Eclipse 右击项目假死无反应解决办法
- asp.net下载文件几种方式
- Codeforces 404D Minesweeper 1D