private关键字的使用

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.对象无法直接操作类中属性。

猜你喜欢

转载自blog.csdn.net/huanglu12138/article/details/88622652