java数据封装
2015-11-22 19:24
351 查看
java数据封装
1.理解:所谓数据封装,就是为了防止用户破坏数据,任意修改数据而做的一些防护措施。(避免数据被篡改,数据的合理性(可以用于规定数据范围),数据结果的正确性)举例说明来保证数据的完整性
public class circle{ double radius;//radius容易被修改为不规范的值,比如负数,此时就会得到一个不合理的数据。 static int numberOfObjects=0;//numberOfObjects是用来统计实例对象个数的,可是这里可以直接对他赋任意值(本来应该是不可以改变的值) circle(double newRadius){ radius=newRadius; numberOfObjects++; } static int getNumberOfObjects(){ return numberOfObjects; } double get Area(){ return radius*radius*Math.PI; } }
2.形式:使用private修饰符声明只有同一类能够访问该数据。声明次数据也是该类私有的,不能对其直接进行修改。
3.使用private之后数据有又怎么修改呢?我们可以设置读取器(getter)或访问器(accessor)读取数据,通过设置器(setter)或修改器(mutator)修改数据,即get方法和set方法。
//*get* public returnType getPropertyName() // public boolean isPropertyName() //*set* public void setPropertyName(dataType propertyValue) //上述程序可以修改为如下程序就能体会到数据封装的好处以及作用 public class circle{ private double radius; private static int numberOfObjects=0;//此处numberOfObjects数值被定义为私有数据域不可更改保证了这个计算实例对象被创建次数的正确性。 public circle(double newRadius){ radius=newRadius; numberOfObjects++; } public static int getNumberOfObjects(){ return numberOfObjects; } public double getRadius(){ return radius; } public void setRadius(double newRadius){//在设置半径时对输入值进行了判断,使得到有效数据。 radius=(newRadius>=0)? newRadius:0; } public double get Area(){ return radius*radius*Math.PI; } }
4.关于数据封装我一直迷糊不知道为什么用了private之后就行了,今天稍微明白一些东西便记录下来。总会有些收获的。上述是对java语言程序设计 基础篇 中对数据封装的总结。
相关文章推荐
- 使用Spring Roo构建项目
- JAVA解析XML文件(二)---SAX方式解析
- java线程内存可见性-实现方式
- Comparable_Comparator_排序工具类JAVA124-125
- JAVA设计模式之策略模式
- Java学习.day_01(关于青蛙跳台阶的问题)
- LUP分解求解线性方程组及求逆矩阵 java
- JAVA解析XML文件(一)---DOM方式
- Spring JMS 使用
- Java中字节与无符号数之间的转换
- 学netstore案例的感想
- [leetode-306]Additive Number(java)
- Java单例集合下List接口的常用实现类
- 配置xml方式实现Spring的aop
- java从类路径下加载资源文件
- myeclipse 使用 junit测试
- JAVA语法基础之变量和基本数据类型
- JAVA语法基础之变量和基本数据类型
- java 拦截器、过滤器
- java.lang.ClassNotFoundException: javax.transaction.SystemException(hibernate5)