简谈Java语言的封装

Posted 一名小和尚

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简谈Java语言的封装相关的知识,希望对你有一定的参考价值。

简谈Java语言的封装

封装的定义

封装将复杂模块或系统的逻辑实现细节隐藏,让使用者只需要关心这个模块或系统怎么使用,而不用关心这个模块或系统是怎么实现的。

在面向对象的的编程中,我们一般通过接口来描述某个系统或模块具体什么功能。

举个通俗的例子:电视机的内部构造是极其复杂的,在需要对电视机进行“换台”操作时,就需要操控电视机中的许多部件,最终才能实现换台这个行为,而普通用户根本无法完成这样复杂的工作。因此,电视机的生产厂家就把这些功能封装起来,对用户仅仅配备一个接口:那就是遥控器!用户仅需要通过遥控器简单触发按钮,便可以实现复杂的操作,而不需要去了解电视机的内部构造及工作原理。

Java的封装示例

出于信息安全的考虑,我们在定义属性的时候就需要将其的权限设置为私有(private);而设置为私有的属性就不能被外部类访问了,如何解决?

这时就可以将这些私有属性封装起来,对外部类仅开放几个简单接口来实现需要功能。

再者,如若某个类的功能多,代码量巨大,这时就可以对外部提供几个简单的接口来实现功能(如输入输出),使用者无需知道实现功能的内部原理是什么。

下面做一个简单的示例:

第一个类:封装类

package 封装示例;
?
public class fengzhuang {
   private String num;
   private String name;
   private int age;
   private char sex;
?
   public String getNum() {
       return num;
  }
?
   public void setNum(String num) {
       this.num = num;
  }
?
   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 char getSex() {
       return sex;
  }
?
   public void setSex(char sex) {
       this.sex = sex;
  }
?
   public void print(){
       System.out.println("num: "+num+" name: "+name+" age: "+age+" sex: "+sex);
  }
}
?

第二个类:测试类,使用封装类提供的接口完成功能

package 封装示例;
?
public class test {
   public static void main(String[] args) {
       fengzhuang fz=new fengzhuang();
       fz.setNum("001");
       fz.setName("Jane");
       fz.setAge(21);
       fz.setSex(‘F‘);
       fz.print();
  }
}
?

以上代码中,变量num,name,age,sex都是私有属性,外部类无法访问到,此时通过封装类提供的接口来操作这些变量。

技术图片

 

以上是关于简谈Java语言的封装的主要内容,如果未能解决你的问题,请参考以下文章

简谈promise封装

简谈Java 反射机制,动态代理

简谈Java 反射机制,动态代理

# Java 常用代码片段

# Java 常用代码片段

简谈Java中数组的简单应用--------------------之思路拓展