留言与评论(共有 0 条评论) |
发布时间:2020-04-12 08:49:19
封装,即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别;将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。
1、封装的作用
面向对象的封装性的主要作用是解决程序的可扩展性。可以在不影响其他部分的情况下修改或者被封装的部分达到对整个程序的扩展。
2、怎么样去封装
一般使用类进行封装,在类中将属性用private修饰,使这些属性对其他类不可见。例:
class Person{
private String name;
private int age;
public void tell(){
System.out.println("姓名:"+name+" 年龄:"+age);
}
}
这些属性在类内部被访问时,需要使用this关键字。对属性进行封装后,其他类就无法访问这些属性。所以需要实现该属性的get和set方法,使得它们能被外部访问。
public void setName(String name){
this.name = name; //使用this关键字进行访问
}
public String getName(){
return name;
}
那么这种set/get方法是不是破坏了封装性呢?
不是。set/get方法是封装性的一种体现。将属性私有化,提供公有方法来访问和设置属性,并且可以在get和set方法中设置条件来达到控制属性的目的,防止属性被赋予一些非法值。
在设置了set/get方法后,类中的方法也要通过调用set/get方法来设置/得到属性值。
public void tell(){
System.out.println("姓名:"+getName()+“年龄:”+getAge());
}
封装 举个不恰当的例子 ,假设电器的线很长,如果你每加一个电器就要去弄一个插座,电器多了,就会用很多插座,如果你把插座封装成插排,那么可能就需要一个插排就够了,这个插排就是插座的封装,代码也是同样的道理,很多地方需要相同的数据,或者算法,如果用一次就重写一次,会造成代码的冗余,而且不利于后期的维护,所以可以封装成一个类或者方法,哪用到就调用一次,后期维护也方便
定义 : 把对象的属性和操作(或服务)结合为一个独立的整体,并尽可能隐藏对象的内部实现细节步骤 : 对类的属性赋予私有访问权限 private , 比如private String name;生成全局访问权限的set 和 get方法 , public void setName(String name){this.name = name;}public String getName(){return this.name;}优点 : 将类的自有属性封装起来 , 更容易理解和维护 , 同时让外部类无法直接访问 , 增加安全性 , 比如你可以在 setName 中进行逻辑判断 , 判断名字必须为汉字 , 不能大于五个字 , 之类的判断 , 可以避免外部类直接修改该类的属性值 .这也是一种编程习惯!纯手打 , 求采纳
留言与评论(共有 0 条评论) |
全站搜索