4-19 代码块分类,导包,继承,super关键字,访问权限修饰符,方法重写 笔记整理

代码块的分类

代码块:
1.局部代码块: 定义在局部位置,限定局部变量的作用域。
2.构造代码块 : 定义在成员的位置,抽取多个构造代码块的重复代码,从而简化代码,在每次构造方法之前执行,并且可以执行多次。
3.静态代码块: 定义在成员位置,在类加载的时候执行,只能够执行一次类加载。目前理解为在类的第一次出现的时候加载或者类的成员被访问的时候加载。
作用:
a.初始化静态成员
b.资源文件的读写,以及配置文件的读写,以及连接资源的载入等等。
数据库连接
读取配置文件
4.同步代码块

导包

为什么要包?
1.分门别类地管理Java文件
2.处理同一个文件夹中类名重名的问题

包的概述:本质就是文件夹

包的声明:
package 包名1.包名2…;

包的导入:

import java.util.Scanner;

包的特点:
1.同包下的类相互调用不需要导入。
2.在同一个类中使用不用包中的同名类,需要显示导入,例如Date
3.如果一个类没有包,那么默认在default包下,该包下的类永远无法被外界访问,只能够再同包下访问。
4.包的声明必须出现在Java文件的第一句。
5.如果希望导入一个包中的所有类java.util.*;
6.java.lang(核心包) 包下的类不需要导入。
7.在写一个类的时候千万不要和系统的类重名。

JDK中常用的包:
1.java.lang 包含了 Java 中一些核心的包 String Object Math Arrays
2.java.awt: 包含了 Java 中的一些窗口图形的相关类
3.java.util: 工具包
4.java.net 网络包
5.java.io 输入输出流

继承

概念:
总结:类是对一批对象的抽象,继承是对一批类的抽象。

继承的格式:
类和类之间的关系:
1.继承 (is a)
2.组合 (has a)
通过 extends 关键字可以实现类与类的继承 class 子类的类名 extends 父亲类名 { }
被继承的这个类称为父类,基类或者超类
继承的这个类称为子类或者派生类

继承的特点:
1.通过 extends 关键字,实现了继承之后,让类与类之间产生了关系,建立关系是好是坏? 有好有坏。
2.继承的本质就是抽取共性代码,多个重复代码的向上提取,简化代码 BaseDao BaseActivity
3.类是对一批对象的抽象,继承是对一批类的抽象
4.父亲又被称为超类,或者基类,子类又被称为派生类
5. Java 是面向对象语言,万事万物皆是对象,为了满足这个设计原则,所有的类都直接或者兼职继承自 Object 类。

继承的好处:
1.简化了代码
2.提高了扩展性
3.提高了可维护性
开闭原则: 对扩展开放,对修改关闭

继承的缺点:
开闭原则:对扩展开放,对修改关闭
高内聚,低耦合: 类与类之间,功能与功能之间,模块与模块之间,功能尽量内聚,不同模块之间,尽量独立。
1.造成了耦合性果高,牵一发动全身
注意:继承一定要慎用,主要利用继承简化代码的优点

继承的注意事项:
1.单一的继承性
2.支持多层继承
3.如果父亲成员使用 private 修饰,那么子类不能被继承
4.如果一个子类继承了父亲的属性和方法还可以有自己的特有属性和方法
5.当子类和父类的成员变量重名的时候,子类优先
6.构造方法不能够被继承

什么时候使用继承?
1.一般在写代码的时候发现代码中存在重复代码,需要向上抽取,考虑继承
2。当某个类的设计非常复杂的时候可以考虑继承 例如:设计一个窗口

使用继承的步骤:
1.先写子类
2.观察多个子类是否存在共性代码
3.如果存在,抽取共性代码到父类中
4.子类继承父类
5.将子类共性代码删除
注意: 父亲命名: A is a B

super关键字

this和super的区别?

this 可以理解为当前对象,谁调用 this 就代指那个调用者对象,每次创建一个对象,默认都会创建一个对象,默认都会创建一个 this 变量指向同一个堆区空间。
super 本质是父类存储空间的标识,但是你可以理解为父亲对象,那么同样可以使用super这个关键字来访问父亲的成员。

访问成员
成员变量
this. 成员变量
super. 成员变量
成员方法
this. 成员方法
super. 成员方法
构造方法
this. (参数列表)
super. (参数列表)

注意:

1.任何一个类的无参或者带参构造方法的第一句都是默认省略 super();
2.任何一个类都直接或者间接继承自 Object
3.为什么设计 Object 类,满足了万事万物皆对象的原则
访问根类 Object 的无参构造方法的意义何在? - 加载 Object 类中静态成员和静态代码块
4.创建一个子类对象默认会去调用父类的构造方法,那么有没有在创建子类对象的同事也创建了父类对象呢? - - 没有创建父亲对象,本质就相当于访问了一个普通方法,创建对象开启空间需要new关键字。
5. super 访问父类带参构造方法的意义? - - 帮助子类初始化父类继承下来的成员,简化编程
6. 静态环境 / 静态上下文 ( staic 修饰的方法 ),不能够出现 thissuper
7. super 必须出现在构造方法的第一句
8. thissuper 不能共存

访问权限修饰符

public protected default [只是一种默认的状态 ] private

概述: 本质就是用来控制类中成员的访问权限,封装的核心。

访问权限修饰符的特点:
1. public 对一切类可见
2. protected 对同包下和不同包的子类可见
3. default 仅对同包下可见
4. private 仅对本类可见
5. 访问权限修饰符有四个,访问权限修饰符可以修饰成员变量,成员方法,还可以修饰类(只有 public 可以) 在这里需要注意,其中protected / private也可以修饰类,但是必须是内部类
6. 访问权限修饰符的宽严关系
public > protected > default > private
7. **Java ** 当中封装就是通过访问权限修饰符来实现的
封装: 就是屏蔽内部的成员,而屏蔽内部的成员是通过访问权限修饰符来控制的

类的本质就是组织代码,封装数据

方法重写

为什么需要方法重写?
当父类的方法不能够满足子类的需求的时候,需要方法重写。
1.发生在具有子父类的两个类中
2.方法名相同
3.参数列表完全相同
4.返回值类型可以相同或者是其子类
5.访问权限修饰符不能够严于父类
访问权限修饰符的宽严关系
public > protected > default > private
6.抛出的异常不能够被扩大

注意事项:

  1. private 修饰的方法不能够被继承,所以不能够被重写。
  2. 构造方法不能够被重写
  3. 子类重写父类的方法时,访问权限修饰符不能更低,严格
  4. 返回值类型相同或者是其子类
  5. 重载和重写的区别
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值