Java的简单复习1(关于类和对象)

Java语言面向对象(OOP)的三大特征:
1.封装 2.继承 3.多态 (抽象)

类和对象:

一、关键字
this
1)this.name = name; 当前对象
2)this();调用当前类中其他构造函数
2.1)this();必须位于当前构造函数有效代码第一行
2.2)this构造函数之间不能相互调用
2.3)this() 只能在构造函数,不能在实例方法中使用

super
1)super.name指向继承下来的name
2)super();必须位于当前构造函数有效代码第一行,初始化继承下来的属性
3)只能在构造函数,不能在实例方法中使用

final :终极
1)修饰变量:final char[] ch;
2)修饰类:final class String
3) 修饰方法:final void fun(){} 不能被重写

static:
用来修饰静态变量和实例变量的区别:
1)内存:
2)对象. 类名. 跟对象/类有关
一个对象一份实例变量
一个类只有一份静态变量
修饰方法:
1)静态方法和实例方法的区别:
2)this 调用方式
修饰类:
静态内部类和实例内部类的区别:

二、方法重载和重写的区别:
方法重载(overload):主要发生在同一个类的多个同名方法之间
1.同一个类 2.相同方法名 3.参数列表不同

方法重写(override):发生在子类和父类的同名方法之间。父子类中,子类重新实现父类的方法
1.父子类 2.方法名相同 3. 参数列表相同

父类方法和子类方法之间也可能发生重载,毕竟子类是会获得父类的方法,如果子类定义了一个与父类方法有相同方法名但参数列表不同的方法,就会形成父类方法和子类方法的重载。

三、继承,多态
继承:
访问修饰符:private public 默认包访问权限 protected->继承
同包路径 默认 <=> protected
不同包:父子关系 用protected 修饰的属性方法

多态的实现原理:

  1. 静态绑定(编译期) ->重载
  2. 动态绑定(运行期) ->重写

发生动态绑定条件:

  1. 继承 2.方法重写 3. 向上造型(基类的引用引用派生类对象)
    People p = new Student();
    p.eat();//子类的实现

四、异常处理
1.异常继承结构
2.五个关键字

五、类加载过程
类加载器,双亲委派模型

JDK 提供的三种类加载器,分别是
Bootstrap ClassLoader(启动类加载器),
ExtClassLoader(扩展类加载器)
AppClassLoader(应用类加载器)。每一种类加载器都有其指定的类加载路径。

(1) Bootstrap ClassLoader(启动类加载器又称为根加载器/引导类加载器)主要加载JAVA_HOME/jre/lib 里的jar 包,该目录下的所有jar 包都是运行JVM 时所必需的jar 包。注意:类加载器其实自身也是一个Java 类,因此,自身类加载器需要被其他类加载器进行加载后方可使用,显然必须有一个类加载器的顶级父类(也就是Bootstrap ClassLoader,该类加载器是由C 语言代码进行开发的)是其他类加载器的父类。关键点在于,如果一个类的类加载器是Bootstrap ClassLoader,那么该类的getClassLoader()方法返回null。

(2) ExtClassLoader 主要加载Java 核心扩展类,即JAVA_HOME/jre/ext 目录下的jar 文件。

(3) AppClassLoader 主要加载的是开发者在应用程序中编写的类,即CLASSPATH 路径下所有的jar 文件。
Java的简单复习1(关于类和对象)
类加载器之间采用的是 双亲委派模型 的加载方式进行类加载的。
Java的简单复习1(关于类和对象)
六、反射
Class->生成对象、修改属性、调用方法