private:权限修饰符:私有的。用于修饰类中的成员(成员变量、成员函数)
私有的成员变量和成员函数(方法)只在本类中有效。
将age私有化以后,a类以外的其他类(例如b类),即使在b类中建立了a类中的对象也不能访问a类中的私有成员。
所以类PersonDemo不能直接访问age。
为了让其他访问一个类的私有变量,可以通过创建set和get的函数来提供访问私有变量的方式。利用set方法改变
age的值时,调用该方法的对象中的age的值将被改变。要非常注意的一点是,改变的不是private int age里的age值,
而是改变的某个对象中的age的值。每个对象被建立时,age在堆中的初始化值均为0。
成员变量有默认初始化值,即使没被赋值,也可以直接参与运算,而局部变量是没有默认初始化值得,必须先赋值
再参与运算。堆中的变量都是有初始化值的。
注意:私有仅是封装的一种表现形式。
之所以对外提供访问方式,就因为可以在访问方式中加入逻辑判断语句。
私有的成员变量和成员函数(方法)只在本类中有效。
将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);
}
}