07_封装
面向对象的三大特性:封装、继承、多态、[多态]。
封装: 将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问,把尽可能多的东西藏起来,对外提供便捷的接口。
封装的使用
- 属性私有化:将访问权限修饰符更改为private
- 提供公共的操作和访问方法(settre/getter方法):每个属性创建两个方法,一个是设值setxxx,一个是getxxx
- 根据需要,在操作和访问中添加合理的判断和处理
一般JavaBean规范:
- 属性私有化
- 提供公共的操作和访问方法
- 编写无参构造方法
- 实现序列化接口(了解)
封装的优势
- 便于使用者正确使用系统,防止错误修改属性。(提高安全性、健壮性)
- 有助于系统之间的松耦合(低耦合),提高系统独立性。
- 提高软件的可重用性(相对独立的整体,高内聚)
包组织结构
包名的规范:
-
包名应该全部小写(根据需要,也可以考虑部分名词大写,保持正常简写)
-
公司/组织的域名倒序 + 项目名 + 部门/项目组 + 分类名 + …(前面基本一致,后面看公司情况)
QQ程序:com.tencent.mobileqq.xx
package 包名; // 包声明,明确该类属于哪个包下的
// 导包(不导包,使用某个类时,将无法定位到指定类)
// 包名 + 类名被称为该类的全限定名/全类名
import 包名.类名;
public class 类名 {
// 类体
}
注意事项:
- 在一个类中,使用另一个包中的类,需要进行导包操作。
- java.lang包下的类使用时不用导包
- 在一个类中,如果使用了两个同名的类,其中至少有一个需要使用全类名写法(包名+类名)
- 如果在使用某个类时,发现该类有这个方法,但就是用不了!考虑是不是导错包了
访问权限修饰符
访问权限修饰符:用于限制访问权限的。
修饰符\访问权限范围 | 同一个类中 | 同一个包的不同类中 | 不同包的子类中 | 同一个项目中 |
---|---|---|---|---|
private | 🔥 | |||
default(默认的/包级的,不用写修饰符) | 🔥 | 🔥 | ||
protected(先了解,学完继承就可以掌握了) | 🔥 | 🔥 | 🔥 | |
public | 🔥 | 🔥 | 🔥 | 🔥 |
可以使用访问权限修饰符来修饰:类、成员变量、成员方法。
static关键字
static:静态的
是一个特殊的修饰符:
-
可以用来修饰类:静态类
-
可以用来修饰成员变量:静态变量
被static修饰后,成员变量将不再是属于对象,而是属于类。成员变量是对象独有的,不共享的信息。而类中的信息是被该类所有的对象共享。static修饰的成员变量加载的时机也是随着类的加载而加载。
-
可以用来修饰成员方法:静态方法
-
可以用来修饰代码块:静态代码块