Java 私有Private

class   Demo{
     private int number;
}

私有化:在成员变量前加上   private(修饰符)

私有化的成员变量只能在类里面访问(类里面的方法可以访问),不能通过对象访问

Demo D =new Demo();
D.number;                  //编译时将会错误//无法访问number

引入私有:描述人

public class Private {
    public static void main(String[] args){
        /*没有私有化时的代码
        person p=new person();
        p.age=12;
        p.Speack();
        //当赋值的数据不合理
        p.age=-20;
        p.Speack();//-20值在语法上没有错误,因为-20也属于int 型,但不符合现实
        /*
        如何解决这个符合语法但不符合现实的值——让它无法被访问——私有化 private;
        */
        person p=new person();
        //此刻无论是合理的还是不合理的都无法访问age
        p.setAge(-20);
        int age=p.getAge();
        System.out.println("我的年龄是 "+age);
        //得到的输出会是:你输入的年龄a是非法的;我的年龄是0
    }
}
class person{
    private int age;
    //在成员变量前加上private 将其私有化,无法通过  对象.成员变量(p.age)访问
    /*
    要使合理的数据可以访问age
    对变量的访问:1.赋值2.获取
     */
    void setAge(int a){
        if(a>0&&a<120){
           age=a;
        }
        else{
            System.out.println("你输入的年龄"+a+"是非法的");//输出非法程序也会继续进行
           // throw new RuntimeException("你输入的年龄"+a+"是非法的");//抛出错误,并且程序结束
        }
    }

总结:只使合理的数据访问成员变量——————私有化Private

1.成员变量都要私有化,然后写他的setxx和getxx函数(每个都要写)

2.非法的数据无法访问--体现了封装的安全性(这也是面向对象思想的一个特性)

3.在这段代码中,输入数据是否合法是在类的方法中判断的,但在实际中,输入数据在哪接受就在那进行判断




猜你喜欢

转载自blog.csdn.net/stitch__/article/details/79927375