java的private权限修饰符

Java四大特性:抽象,封装,继承,多态。
java四大权限修饰符:public,protected,default,private.

private这个关键字可以帮我们实现java的封装。
 
封装:
何为封装?我的理解就是,在一个java类里面,成员变量设置为private,不让其它类直接访问这个private的成员。如果其它类要访问这个类的private变量,
需要调用此类里面的方法。
在抽象中将属性与方法写在一个类中就是封装,而封装就是为了保证抽象出来的特征和方法的安全性,封装就是包装的过程,
注意封装不是绝对的封装,如果其他程序要获取已经封装好的数据,就要通过程序指定的接口或方法才能获取。
 
以下代码在编译时会报错,因为age是用private修饰的,在PersonTest这个类中不能直接访问age这个属性。
public class Person {
//用private修饰的变量,在其它类中不能直接访问
private int age; void speak(){ System.out.println("I'am a person, my age:"+age); } } class PersonTest{ public static void main(String[] args) { Person person=new Person();
//虽然负数也是int类型,但我们知道一个人的年龄不能是负数
    //需要我们写一些语句去判断正负 person.setAge(
-20); person.speak(); } }

private实现了对类的属性的封装,但是其它类不能直接访问private属性,即使在其它类里面创建了类的对象也不能。

如果在其它类中要访问是私有的属性,常见的作法是调用geter和setter方法。

如下:

public class Person {
    private int age;

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        if(age>0 && age<130) {
            this.age = age;
        }else{
            System.out.println("Age is not right,please check your input.");
        }
    }

    void speak(){

        System.out.println("I'am a person, my age:"+age);
    }
}

class PersonTest{
    public static void main(String[] args) {
        Person person=new Person();
        person.setAge(20);
        person.speak();
    }
}

猜你喜欢

转载自www.cnblogs.com/majestyking/p/12382053.html