Java 封装


封装就是保护内容。保证某些属性或方法可以不被外部看见。

一般情况下,类中的每一个属性都必须封装



一. 封装的实现

为属性封装private 属性类型 属性名称

为方法封装private 方法返回值 方法名称(参数列表){}

class Person{
    private String name;
    private int age;
    public void tell(){
        System.out.println("姓名:" + name + ", 年龄:" + age);
    }
}

public class EncDemo02 {
    public static void main(String[] args) {
        Person per = new Person();
        per.name = "张三";
        per.age = 30;
        per.tell();
    }
}

输出结果:

java: name可以在Person中访问private

运行结果出错,将 name 和 age 属性设置为私有的,只能本类访问,其他类访问不了。



二. 访问封装的内容

对每个私有属性创建一对赋取值方法。用 settergetter 方法。

class Person{
    private String name;
    private int age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public void tell(){
        System.out.println("姓名:" + name + ", 年龄:" + age);
    }
}

this 关键字是为了解决实例变量(private String name)局部变量(setName(String name)中的name变量)之间发生同名的冲突。


通过 setName() 和 setAge() 为属性赋值。

public class EncDemo02 {
    public static void main(String[] args) {
        Person per = new Person();
        per.setName("张三");
        per.setAge(30);
        per.tell();
    }
}

输出结果:

姓名:张三, 年龄:30
原文地址:https://www.cnblogs.com/keye/p/15162031.html