Java学习——private实现封装处理

Java封装处理(private封装)


所谓封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。简而言之就是,内部操作对外部而言不可见(保护性) 。

封装是面向对象里最复杂的概念,使用private关键字实现的封装处理只是封装的第一步。

看一段代码,无封装的程序

class Person{
    public String name;
    public int age;
    public void printName(){
        System.out.println(this.name);
    }
}

public class Test{
    public static void main(String[] args) {
        Person person1 = new Person();
        person1.name = "张三" ;
        person1.age = 20;
        person1.printName();
    }
}

在无封装的程序中我们可以在主类中通过对象直接访问到Person类中的属性。此时,要回避此类问题,让内部操作对外部不可见(对象不能直接操作属性),可以使用private进行封装。

将姓名、年龄权限设置为private,即私有,访问权限仅限于类的内部。设置完以后我们无法通过对象直接访问名字和年龄属性了,这时我们需要留出一个访问的接口,即set、get函数。

class Person{
    private String name;
    private int age;
    public void printName(){
        System.out.println(this.name);
    }
    public void setName(String name){
        this.name = name;
    }
    public String getName(){
        return this.name;
    }
    public void setAge(int age){
        this.age = age;
    }
    public int getAge(){
        return this.age;
    }
}

public class Test{
    public static void main(String[] args) {
        Person person1 = new Person();
        person1.setName("张三");
        person1.setAge(20);
        System.out.println("姓名" + person1.getName());
        System.out.println("年龄" + person1.getAge());
    }
}

其中set、get函数是public,在外部可以访问,在外部我们可以通过这2种函数实现对属性的访问,但无法直接访问到属性值。在主类中我们通过setName、getName可以访问到Person类的属性。private实现封装的最大特征在于:只允许本类访问,而不允许外部类访问。

类的设计原则

1.类中的所有属性必须使用private封装。

2.属性若要被外部访问,必须定义setter、getter方法。
 

猜你喜欢

转载自blog.csdn.net/eve8888888/article/details/83151740
今日推荐