【JAVA】35、面向对象的封装性(上)
来源:互联网 发布:java程序员认证培训 编辑:程序博客网 时间:2024/04/30 23:40
本篇博文最后修改时间:2016年3月10日,12:55。
本篇介绍面向对象的封装性。
系统版本:Windows7 家庭普通版 32位操作系统。
三、版权声明
博主:思跡
声明:喝水不忘挖井人,转载请注明出处。
原文地址:http://blog.csdn.net/omoiato
联系方式:315878825@qq.com
Java零基础入门交流群:541462902
四、面向对象的封装性
范例1:观察以下程序的问题
class Person{String name;//声明姓名属性int age;//声明年龄属性public void tell()//取得信息的方法{System.out.println("姓名:" + name + "年龄:" +age);}}public class EncDemo01 {public static void main(String[] args) {Person per = new Person();//声明并实例化对象per.name = "张三"; //为name属性赋值per.age = -30;//为age属性赋值per.tell(); //调用方法}}程序运行结果:
观察发现:
1、运行结果:-30岁不合理,类中声明属性时,应该设置条件。
2、对象直接访问类中的属性,这在面向对象法则中是不允许的。
为此,在一般的开发中往往要将类中的属性封装(private)
使用封装性格式:
为属性封装:private 属性类型 属性名称;为方法封装:private 方法返回值 方法名称(参数列表){...}
范例2:为程序加上封装属性
class Person{private String name;//声明姓名属性private int age;//声明年龄属性public void tell()//取得信息的方法{System.out.println("姓名:" + name + "年龄:" +age);}}public class EncDemo02 {public static void main(String[] args) {Person per = new Person();//声明并实例化对象per.name = "张三"; //为name属性赋值per.age = -30;//为age属性赋值per.tell(); //调用方法}}程序运行结果:
范例1与范例2的区别在于关键字private,加入该关键字后,原程序无法编译。
这是因为private对属性进行了封装,所以不能由对象直接访问。
有了private后,就可以保证对象无法直接访问类的属性。
为了解决属性必须封装,又必须访问的矛盾,便需要用到setter和getter方法设置和取得。
具体内容在下篇继续讲解。
1 0
- 【JAVA】35、面向对象的封装性(上)
- 【JAVA】36、面向对象的封装性(下)
- Java面向对象(封装性概论)
- Java面向对象:封装性
- 【java基础】——java面向对象(上)—面向对象、类与对象、封装、构造函数等
- java 面向对象----封装
- [Java面向对象]封装
- JAVA面向对象-----封装
- Java 面向对象 : 封装
- Java面向对象 封装
- Java学习笔记(13)--面向对象的封装性
- Java--面向对象的特性(封装,继承,多态)学习
- java面向对象的封装特性
- Java面向对象的封装与继承
- 面向对象 -- Java中的封装,继承,多态(上)
- Java面向对象(二)面向对象的特征 --- 封装 、 继承、 多态
- Java-面向对象(基础篇)--封装性
- Java面向对象基础知识及封装性
- 8 配置
- 并归排序算法java实现
- MIT自然语言处理第三讲:概率语言模型(第一、二、三部分)
- 9 异步请求处理
- Linux+Win双系统引导问题
- 【JAVA】35、面向对象的封装性(上)
- 10 全局异常处理
- [leetcode 53] Maximum Subarray----最大子数组的和
- 【转】大数据量分页查询方法
- 词语辨析
- This version of the rendering library is more recent than your version of ADT plug-in. Please update
- MIT自然语言处理第三讲:概率语言模型(第四、五、六部分)
- 手把手教你如何加入到github的开源世界!
- mysql统计-关于学生成绩