219 . 面向对象 (上) 封装性与隐藏
·为什么需要封装?封装的作用和含义?
我要用洗衣机,只需要按一下开关和洗涤模式就可以了。有必要了解洗衣机内部的结构吗?有必要碰电动机吗?
·我们程序设计追求“高内聚,低耦合”。
-
高内聚:类的内部数据操作细节自己完成,不允许外部干涉;
-
低耦合:仅对外暴露少量的方法用于使用。
·隐藏对象内部的复杂性,只对外公开简单的接口。便于外界调用,从而提高系统的可扩展性、可维护性。通俗的说,把该隐藏的隐藏起来,该暴露的暴露出来。这就是封装性的设计思想。
为了限制用户直接调用某些属性,可以用private(私有的)关键字把这些功能加以限制,再加入set方法(设置)和get方法(获取).
属性赋值的限制条件不能再属性声明时体现,只能通过方法进行限制条件的添加.同时要避免用户用对象.属性的方式进行赋值.则需将其声明为私有(private).--此时, 针对属性就体现了封装性.
二 , 封装性的体现 :
将属性私有化的同时,提供公共的方法来获取(get)和设置(set)此属性的值.
public class pigTest {
public static void main(String[] args) {
pig p = new pig();
//p.age = 3 ; //报错:The field pig.age is not visible
//这个属性不可见,私有属性不能对象.属性的方式来调用.
p.setAge(3);
System.out.println(p.getAge());
}
}
public class pig {
private int age ; //属性私有
void setAge(int a) { //用户可以调用方法来赋值
age = a ;
}
int getAge() { //调用方法来获取值
return age ;
}
}
拓展 : 封装性的体现不止是这些 1, 同上 2, 不对外暴露的私有化方法 3, 单例模式...
三 , 封装性的体现, 需要权限修饰符来配合
封装性的体现需要权限修饰符来配合。
-
- java规定的4种权限(从小到大) : *** private , 缺省 , protected , public ***
- 4种权限可以用来修饰类及类的内部结构 : 属性, 方法, 构造器, 内部类.
- 具体的, 4种权限可以用来修饰类的内部结构 : 属性, 方法, 构造器, 内部类.
修饰符 | 内部类 | 同一个包 | 不同子类 | 同一个工程 |
---|---|---|---|---|
private | yes | |||
default | yes | yes | ||
protected | yes | yes | yes | |
public | yes | yes | yes | yes |
对于类(class)的权限修饰,只可以用public 和 default.
public类可以在任何地方被访问,default类只可以被同一个包内部的类访问。
222. 总结 封装性
Java提供了4种权限修饰符来修饰类及其内部结构,体现了类及其内部结构可见性的大小。
标签:封装,private,219,面向对象,yes,权限,public,属性 From: https://www.cnblogs.com/lg369/p/16820776.html