欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java 私有Private

程序员文章站 2022-07-15 16:59:23
...
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.在这段代码中,输入数据是否合法是在类的方法中判断的,但在实际中,输入数据在哪接受就在那进行判断