java面向对象之封装

末鹿安然 提交于 2020-02-17 04:23:41

1.什么叫封装?

封装是指将抽象性函式接口的实现细节隐藏起来。

2.为什么要封装?

 为了防止该代码和数据被外部类定义的代码随机访问。

3如何封装?

实现封装步骤

1.声明属性的可见性为 private(私有)

public class Student {
    private String name;
    private int age;
}

属性设为私有的,只有本类才能访问,这样就对信息进行了隐藏。
那么肯定有人要问把信息隐藏了我想要看到数据怎么办?各位客官稍安勿躁…
2.每个属性提供对外的公共访问方法,这样就可以私有属性进行访问了

public class Student {
    private String name;
    private int age;

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

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

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

实例中public方法是外部类访问该类成员变量的入口:
getxxx—可以访问数据
setxxx—可以进行赋值

public class Test {
    public static void main(String args[]){
        Student sut=new Student();
        sut.setName("张三");
        sut.setAge(25);

       System.out.print("name:"+sut.getName()+"-----age:"+sut.getAge());

    }
}

输出结果:

name:张三-----age:25

这样就是一个完整的封装了。

优点:

  1. 减少耦合
  2. 隐藏信息,更加安全
  3. 类的内部可自由修改
  4. 可以跟精准的控制成员变量

还有个小细节我觉得要提一下:
1.两个name 为什么要自己给赋值
2.两个name 为什么没有报错
原因是这两个是不同的name this.name指的是本身类 实例变量属性name,setName(String name) 是局部变量 name ,没有this就会报错

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!