2021-01-20
一、封装
面向对象的三大特征之一:封装,继承,多态
为什么使用封装?(好处)
1、为了不让外界可以轻易访问,保证数据的安全性
2、对不合理的数据规范化
3、让类与类之间保持独立性
4、提高了复用性、可维护性、可扩展
封装概念
将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。
对外提供接口;
使用封装步骤:
1、对需要进行封装的数据,提供private关键字在属性前封装
2、提供外界可以访问的方式(getter/setter)
3、使用通过封装的属性和行为,通过对象名调用getter/setter方法
关键字:private、public、protected
快捷键封装数据
Alt + insert ->选择Getter 和 Setter -> 选择
快捷键构造方法
Alt + insert ->选择 constructor ->选择
二、包
包的作用
1、允许类组成较小的单元(类似文件夹,易于找到和使用相应的java文件);
2、防止命名冲突区分名字相同的类;
3、有助于实施访问权限控制,通过 包名.类名 找到指定的类;
包命名规范
1、包名由小写字母组成,不能以圆点开头或结尾
2、包名之前最好加上唯一的前缀们通常使用组织倒置的网络域名,例如 com.baidu.www
3、包名后续部分以不同机构内部的规范不同而不同,例如:com.tengxun.项目名.模块名.db
注意事项
1、一个类同时引用了两个来自不同包的同名类,必须通过完整类名来区分
2、每个包都是独立的,顶层包不会包含子包的类
3、package和import的顺序是固定的:
package必须位于第一行,
只允许有一个package语句,
其次是import,
接着是类的声明;
4、导包:import 包名1.包名2.类名; 例如:import java.util.Scanner;
java.util 工具包
java.awt 窗体包
java.net 网络包
5、当一个java类中需要用到两个不同包下的类
比如:java.util Date date = new Date();
另一个类就需要显示导入包 java.sql.Date date1 = new java.sql.Date(100);
类成员的访问修饰符
public 对所有类都是可以访问,项目可见性
protected 保护子类和同包下的类,子类可见性和本包可见性
default 同包可访问 ,包可见性
private 只在本类中访问 ,类可见性
![]()
三、继承
继承作用
1、优化代码,减少代码量
2、提高开发效率
继承缺点
1、让类和类之间产生紧密关系,不可避免;
开发原则
高内聚、低耦合
使用继承步骤
1、发现不同类中的相同属性和方法;
2、把他们(共同的属性和方法)抽取出来放在一个类中(父类/基类/超类);
一个类需要使用父类的属性或者方法就需要使用继承extends(子类/派生类);
(继承需要满足 is a 的关系)
3、使用从父类继承过来的方法和属性
创建对象, 对象名.属性/方法
子类不可以继承父类的情况有?
1、父类中私有的属性和方法不能被继承;
2、父类的构造方法不能被继承;
3、默认修饰符的情况下在不同包中,子类是不能访问的
继承注意事项
1、子类可以继承父类的属性和方法,也可以有自己的属性和方法;
2、继承只能够单层继承,单继承,具有单根性,只能有一个父类
子类不能多继承,可以多层继承:父亲->儿子->孙子
四、super关键字
super代表父类对象,能访问父类的属性、成员方法和构造方法
子类的构造方法里面有系统默认的父类
在子类构造方法中调用且必须是第一句
不可以访问父类中定义为private的属性和方法
小结
super只能出现在子类的方法和构造方法中
super调用构造方法时,只能是第一句
super不能访问父类的private成员
五、this和super区别
this 是访问本类,super是访问父类的;
this和super在构造方法中调用都是第一行,且不能同时使用;