面向对象-主线三:关键字
关键字
this的使用
- 它在方法内部使用是指方法所属对象的引用
- 他在构造器中使用是指构造器正在初始化的对象
this() 调用构造器
super
super可以理解为父类
super可以调用父类的属性、方法、构造器
package
为了更好的进行类的管理
- 每’.’一次都代表一层文件目录
- 定义在源文件的首行
- 包内不能定义同名的类,不同包可以
- 包名属于标识符要遵循标识符的命名规则和规范
jdk中主要包的介绍
- java.lang—-java的核心类包括Integer、System、Math等
- java.net—-跟网络编程相关的的类和接口
- java.io—-提供输入输出相关的类
- java.util—-java工具类,集合框架和和日历相关的函数等
- java.text—-包含java格式化相关的类
- java.sql—-进行jdbc操作的类
- java.awt—-构建桌面窗口工具集
import
在源文件中显式的使用import导入指定包下的类或者接口。
- 在包的声明和类的声明之间声明
- 多个import并列
- 可以用xxx.* 导入包下的所有类
- java.lang下的类不用import
import static 可以导入类中的静态结构
instanceof
X instanceof A :检验X是否是类A的对象或父类的对象,返回boolean
static 静态的
static可以修饰属性、方法、代码块、内部类
- 属性:静态变量(类变量),static修饰为静态属性,无static非静态属性(实例属性),静态属性是共有的,非静态属性每个都拥有一份。
- 静态变量随着类加载而加载,可以使用类.属性来调用
- 静态变量的加载要早于对象的创建
- 静态变量只在内存中存一份,存在方法区的静态域中
- 方法:被static修饰的为静态方法
- 随着类加载而加载,可以通过类.方法调用
- 静态方法中只能调用静态的方法或属性
- 非静态可以调用非静态的方法和属性
- 静态方法不能使用this()或者super
final 最终的
- 属性:静态变量(类变量),static修饰为静态属性,无static非静态属性(实例属性),静态属性是共有的,非静态属性每个都拥有一份。
可以修饰的结构:类、方法、变量
- 修饰类:不能被继承
- 修饰成员变量:此时变量为一个常量,不能被修改,可以赋值的地方:显示初始化、代码块、构造器
- 修饰局部变量:不能被修改
- 修饰方法:不能被重写
abstract(抽象的)
可以用来修饰的结构:类、方法
- abstract修饰类:抽象类
- 此类不能实例化
- 抽象类一定有构造器,便于子类实例化时调用
abstract修饰方法:抽象方法
- 抽象方法没有方法体
- 有抽象方法的类一定是抽象类
- 子类需要实现父类的抽象方法,子类不重写则也为抽象类
- 不能修饰私有方法、静态方法、fianl的方法或类
interface (接口)
接口使用interface来定义
- java中接口和类是并列的结构
- 如何定义接口,定义接口的成员
- jdk7以前:只能够定义全局常量public static final(书写的时候可以省略) 和抽象方法 public abstract(书写的时候可以省略)
- jdk8之后:增加了定义静态方法、默认方法
- jdk7以前:只能够定义全局常量public static final(书写的时候可以省略) 和抽象方法 public abstract(书写的时候可以省略)
- jdk8之后:增加静态方法和默认方法
静态方法:piblic static void method(){} 接口自己才能调用
默认方法:public default void method(){} 实现类的实例可以调用,可以被重写。
子类或实现类继承的父类和实现的接口中有同名同参数的方法,子类在没有重写该方法的情况下,调用的是父类的方法。指定调父类super.method(),指定调接口中的默认方法interfaceName.super.method()
接口冲突:实现类实现的多个接口中不能有同名同参数的默认方法(没有重写的情况下)
(子类或其实例可以调用父类的静态变量和静态方法。实现类和其实例可以调用接口的静态变量,但是不能调用新特性中的静态方法,子类的实例可以调用默认方法)
- 接口中不能有构造器,接口不可以实例化
- java开发中,接口通过让类实现(implements)来使用,如果实现类覆盖了接口中的所有抽象方法,该类可以实例化。如果没有覆盖完,则此实现类仍然是一个抽象类。
- java可以实现多个接口—-弥补了java单继承的局限性。格式:class A extends B implements C,D
- 接口和接口之间可以继承,而且可以多继承 interface AA entends BB,CC
- 接口的具体使用,体现多态性
- 接口实际上可以看成一种规范