Java織程教术基础 第四章类与对象(二) 索迪教育
索迪教育 Java编程技术基础 第四章 类与对象(二)
上章回顾 >掌握类的创建 >掌握方法重载 掌握构造函数和初始化对象 >继承 >掌握方法覆盖 >掌握访问修饰符 >掌握包的概念 Object类 String类 索迪教育
索迪教育 上章回顾 ➢ 掌握类的创建 ➢ 掌握方法重载 ➢ 掌握构造函数和初始化对象 ➢ 继承 ➢ 掌握方法覆盖 ➢ 掌握访问修饰符 ➢ 掌握包的概念 ➢ Object类 ➢ String类
我们的目标 >掌握类的静态成员 >掌握Math类 >掌握ths关键字 掌握fna关键字 >掌握抽象类的概念与实现 >掌握接口的概念与实现 >掌握封装类 >掌握内部类的实现 索迪教育
索迪教育 我们的目标 ➢ 掌握类的静态成员 ➢ 掌握Math类 ➢ 掌握this关键字 ➢ 掌握final关键字 ➢ 掌握抽象类的概念与实现 ➢ 掌握接口的概念与实现 ➢ 掌握封装类 ➢ 掌握内部类的实现
Static关键字 static 用于变量与方法 ■无需创建类的对象可直接访问的变量或方法 √对于变量,整个类的所在对象只创建一个实例 √引用静态变量的方法: 通过引用类的任一实例 通过类的名称 ■与静态方法相关的几个要点: √类的静态方法只能访问其他的静态成员 索迪教育
索迪教育 Static关键字 ➢ static ◼ 用于变量与方法 ◼ 无需创建类的对象可直接访问的变量或方法 ✓对于变量,整个类的所在对象只创建一个实例 ✓引用静态变量的方法: 通过引用类的任一实例 通过类的名称 ◼ 与静态方法相关的几个要点: ✓类的静态方法只能访问其他的静态成员
Math类 java lang Math Math的一些静态方法 abso cello a floor a maxo a mino andom a roundo 索迪教育
索迪教育 Math 类 ➢ java.lang.Math ➢ Math的一些静态方法 ◼ abs() ◼ ceil() ◼ floor() ◼ max() ◼ min() ◼ random() ◼ round()
this关键字 this代表当前类本身的实例 ■静态方法不能使用this 索迪教育
索迪教育 this关键字 ➢ this 代表当前类本身的实例 ◼ 静态方法不能使用this
fina关键字 tina ■应用于变量、方法、类 用于声明唯一性 被应用于 作用 变量不可变,成常量 方法不可被子类重写 类不可产生子类 索迪教育
索迪教育 final关键字 ➢ final ◼ 应用于变量、方法、类 ◼ 用于声明唯一性 被应用于 作用 变量 不可变,成常量 方法 不可被子类重写 类 不可产生子类
头于抽泉类 >有时候,基类并不与具体的事物相联系,而是只表达 种抽象的概念,用以为它的派生类提供一个公共的 界面 >为此,Java中引入了抽象类的概念 ■C++程序员在这里最容易犯错误,C++中没有对 抽象类进行直接声明的方法,而认为只要在类中定 义了纯虚函数,这个类就是一个抽象类 纯虚函数的概念比较晦涩,直观上不容易为人们接 受和掌握,因此Java抛弃了这一概念 索迪教育
索迪教育 关于抽象类 ➢ 有时候,基类并不与具体的事物相联系,而是只表达 一种抽象的概念,用以为它的派生类提供一个公共的 界面 ➢ 为此,Java 中引入了抽象类的概念 ◼ C++ 程序员在这里最容易犯错误,C++ 中没有对 抽象类进行直接声明的方法,而认为只要在类中定 义了纯虚函数,这个类就是一个抽象类 ◼ 纯虚函数的概念比较晦涩,直观上不容易为人们接 受和掌握,因此 Java 抛弃了这一概念
Java中对抽象类的规定 >抽象类使用 abstract修饰符,对抽象类的使用有以 下几点规定 抽象类只能作为其它类的基类,它不能直接被实例 化,而且对抽象类不能使用neW操作符 √抽象类如果含有抽象的变量或值,则它们要么是nul 类型,要么包含了对非抽象类的实例的引用 抽象类允许包含抽象成员,虽然这不是必须的 抽象类不能同时又是唯一的 如果 抽象类从抽象类中派生,则其必须通过 重写来实现所有继承而来的抽象成员 索迪教育
索迪教育 Java 中对抽象类的规定 ➢ 抽象类使用 abstract 修饰符,对抽象类的使用有以 下几点规定 ◼ 抽象类只能作为其它类的基类,它不能直接被实例 化,而且对抽象类不能使用 new 操作符 ✓抽象类如果含有抽象的变量或值,则它们要么是 null 类型,要么包含了对非抽象类的实例的引用 ◼ 抽象类允许包含抽象成员,虽然这不是必须的 ◼ 抽象类不能同时又是唯一的 ◼ 如果一个非抽象类从抽象类中派生,则其必须通过 重写来实现所有继承而来的抽象成员
抽家方法 >由于抽象类本身表达的是抽象的概念,因此类中的许多方法 并不一定要有具体的实现,而只是留出一个接口来作为派生 类重写的界面 个方法声明中如果加上 abstract修饰符,我们称该方法为 抽象方法 如果一个方法被声明也是抽象的,那么它不提供具体的方 法实现代码 抽象方法不包含具体的实现内容,方法声明的执行体中只 有一个分号 ■只能在抽象类中声明抽象方法 对抽象方法不能再使用 statIc修饰符,而且方法不能有仼 何可执行代码 ■抽象方法在派生类中不能使用 super关键字来进行访问 索迪教育
索迪教育 抽象方法 ➢ 由于抽象类本身表达的是抽象的概念,因此类中的许多方法 并不一定要有具体的实现,而只是留出一个接口来作为派生 类重写的界面 ➢ 一个方法声明中如果加上 abstract 修饰符,我们称该方法为 抽象方法 ◼ 如果一个方法被声明也是抽象的,那么它不提供具体的方 法实现代码 ◼ 抽象方法不包含具体的实现内容,方法声明的执行体中只 有一个分号 ◼ 只能在抽象类中声明抽象方法 ◼ 对抽象方法不能再使用 static 修饰符,而且方法不能有任 何可执行代码 ◼ 抽象方法在派生类中不能使用 super 关键字来进行访问