Java(封装、继承)

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在构造方法中调用都是第一行,且不能同时使用;
posted @ 2021-01-20 17:27  一名初学者  阅读(146)  评论(0)    收藏  举报