java13面向对象深入3
大纲
这里没有写
面向对象-封装性
理解
封装( encapsulation)怎么去理解,一台电脑利用一个外壳包裹,保护了里面的电器元件,提供了少量的按键与其对接使用。我要看电视,只需要按一下开关和换台就可以了。有必要了解电视机内部的结构吗?有必要碰碰显像管吗?制造厂家为了方便我们使用电视,把复杂的内部细节全部封装起来,只给我们暴露简单的接口,比如:电源开关。具体怎么内部实现的,我们不需要操心。
需要让用户知道的暴露出来,不需要让用户了解的全部隐藏起来。这就是封装,白话: “ 该露的露,该藏的藏”。
概念
我们程序设计要追求“ 高内聚,低耦合”。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合:仅暴露少量的方法给外部使用。利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。系统的其他部分只有通过包裹在数据外面的被授权的操作来与这个抽象数据类型交流与交互。也就是说,用户无需知道对象内部方法的实现细节,但可以根据对象提供的外部接口(对象名和参数)访问该对象。
作用
a)、实现了专业的分工。将能实现某一特定功能的代码封装成一个独立的实体后,各程序员可以在需要的时候调用,从而实现了专业的分工,即工作中的分模块、分功能开发。 b)、隐藏信息,实现细节。通过控制访问权限可以将可以将不想让客户端程序员看到的信息隐藏起来,如某客户的银行的密码需要保密,只能对该客户开发权限。
javabean
规则
在编写 javabean 中的有一些常用的规则如: 1)、属性尽可能私有化 private 2)、访问器: setter 与 getter 访问器 >private ,一般 public 居多 setterXxx: 存储> 与 getterXxx: 查看
代码
public class Person { //姓名
private String name; //年龄
private int age; //性别
private boolean sex;
public Person() {
}
//setter与getter
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 boolean isSex() {
return sex;
}
public void setSex(boolean sex) {
this.sex = sex;
}
}
经典MVC思想
概述
MVC是一种分层思想,一种设计模式。
M:Model层(模型层 )
处理数据、业务,再把处理后的数据提供给视图层
V:View层(视图层)
为用户展示数据,是数据最直观的体现。
C:Controller层(业务逻辑层)
接收界面层的数据,对接受到的数据进行封装和类型转换。 调用模型层的服务进行业务逻辑的处理。 调用合适的视图去渲染数据。
优点
- 减少代码量,提升性能(效率);
- 提高代码的扩展性(需求改动,无需改动太多的代码)
- 遵循高内聚、低耦合的原则
权限修饰符
public: 一览无遗;
protected:子承父业 (儿子自己使用);
default :家庭和睦;
private :占为已有