java 私有是封装的一种形式
2016-05-08 10:32
253 查看
private:权限修饰符:私有的。用于修饰类中的成员(成员变量、成员函数)
私有的成员变量和成员函数(方法)只在本类中有效。
将age私有化以后,a类以外的其他类(例如b类),即使在b类中建立了a类中的对象也不能访问a类中的私有成员。
所以类PersonDemo不能直接访问age。
为了让其他访问一个类的私有变量,可以通过创建set和get的函数来提供访问私有变量的方式。利用set方法改变
age的值时,调用该方法的对象中的age的值将被改变。要非常注意的一点是,改变的不是private int age里的age值,
而是改变的某个对象中的age的值。每个对象被建立时,age在堆中的初始化值均为0。
成员变量有默认初始化值,即使没被赋值,也可以直接参与运算,而局部变量是没有默认初始化值得,必须先赋值
再参与运算。堆中的变量都是有初始化值的。
注意:私有仅是封装的一种表现形式。
之所以对外提供访问方式,就因为可以在访问方式中加入逻辑判断语句。
对方问的数据进行操作,提高代码的健壮性。
class Person
{
private int age;
public void setAge(int a){
if(a>0 && a<150)
{
age=a;
}
else
System.out.println("illegal age");
}
public int getAge(){
return age;
}
public void speak()
{
System.out.println(age);
}
}
class PersonDemo
{
public static void main(String[] args){
Person p=new Person();
p.setAge(180);
}
}
私有的成员变量和成员函数(方法)只在本类中有效。
将age私有化以后,a类以外的其他类(例如b类),即使在b类中建立了a类中的对象也不能访问a类中的私有成员。
所以类PersonDemo不能直接访问age。
为了让其他访问一个类的私有变量,可以通过创建set和get的函数来提供访问私有变量的方式。利用set方法改变
age的值时,调用该方法的对象中的age的值将被改变。要非常注意的一点是,改变的不是private int age里的age值,
而是改变的某个对象中的age的值。每个对象被建立时,age在堆中的初始化值均为0。
成员变量有默认初始化值,即使没被赋值,也可以直接参与运算,而局部变量是没有默认初始化值得,必须先赋值
再参与运算。堆中的变量都是有初始化值的。
注意:私有仅是封装的一种表现形式。
之所以对外提供访问方式,就因为可以在访问方式中加入逻辑判断语句。
对方问的数据进行操作,提高代码的健壮性。
class Person
{
private int age;
public void setAge(int a){
if(a>0 && a<150)
{
age=a;
}
else
System.out.println("illegal age");
}
public int getAge(){
return age;
}
public void speak()
{
System.out.println(age);
}
}
class PersonDemo
{
public static void main(String[] args){
Person p=new Person();
p.setAge(180);
}
}
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树