private实现封装,封装时面向对象语言的三大特征之一。所谓封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者 对象操作,对不可信的进行信息隐藏。简而言之就是,内部操作对外部而言不可见(保护性) 。
所谓保护性是指:
也因此需要对类中属性进行封装处理,而被private修饰的属性或方法表示该属性只能在本类中使用,其他类无法直接使用。且,要访问私有属性,按照Java的设计原则必须提供以下两种方法:
setter方法:主要用于进行属性内容的设置与修改。
getter方法:主要用于属性内容的取得。
以下代码为未使用private封装处理的程序,对象可直接操作类中属性,无限制属性是否正常设置,年龄-200显然有违常理。
class Person
{
String name;
int age;
public void getPersonInfo()
{
System.out.println("姓名:"+name+",年龄:"+age);
}
}
public class Text2
{
public static void main(String[] args)
{
Person person = new Person();
person.name = "张三" ;
person.age = -200 ;
person.getPersonInfo();
}
}
以下为使用private封装处理过后得代码
class Person
{
private String name;
private int age;
public void setName(String n)
{
name = n ;
}
public String getName()
{
return name;
}
public void setAge(int i)
{
if (i>0&&i<=200)
{
age = i ;
}
else
{
age = 0 ;
}
}
public int getAge()
{
return age;
}
public void getPersonInfo()
{
System.out.println("姓名:"+name+",年龄:"+age);
}
}
public class Text2
{
public static void main(String[] args)
{
Person person = new Person();
person.setName("张三");
person.setAge(-200);
person.getPersonInfo();
}
}
由上述代码及运行结果可得,当设置name属性为-200时,自动将其归为0.对象无法直接操作类中属性。