基础拾遗(一)

温故《Java核心技术》,所以基本上是根据这本书对基础进行部分拾遗,看到哪儿记到哪儿

类关系

依赖(use-a)

A类的方法操作B类的对象,则A依赖B,比如Order类需要访问Account类,查看信用状态。

聚合(has-a)

类A对象包含类B的对象,比如Order对象包含Item对象

继承(is-a)

类A是类B的一种特殊情况,比如RushOrder由Order类继承而来

方法参数说明

Java传递类型两种:

  1. 基本数据类型
    基本对象类型传递过去的是一个值得拷贝,所以不会改变原有的值;
  2. 对象引用
    对象传递过去的是对象的引用地址,所以如果改变对象的话,原对象内容会跟着变

继承

重载

方法名与参数形成一个标签(注意返回类型不在标签内),同一个方法名,不通的参数称之为(方法)重载

多态

一个超类,可以有很多个不同的子类,比如Employee(雇员)这个超类,他可以有很多子类开发人员、测试人员、经理、销售人员等等。Employee对象可以引用Employee对象,也可以引用任何他的子类对象,这种置换关系称之为多态

方法的执行过程
  1. 获取类名与方法名
  2. 获取参数,进行重载解析
    1. 找到参数完全匹配的方法,若有则定位此方法为调用方法
    2. 对参数进行类型转换,匹配最符合条件的方法
    3. 若都没有,或者找到多个,则报错
  3. 绑定方法
    1. 若方法是private、final、static类型的,则编译器可以知道准确方法,进行静态绑定(由编译器绑定)
    2. 若方法非以上三种类型,则调用方法需要依赖于隐式参数的实际类型,在运行时动态绑定(由方法调用器绑定)
  4. 执行方法
    1. 类方法(静态绑定),虚拟机会基于对象引用的的类型来选择调用的方法
    2. 实例方法(动态绑定),虚拟机基于对象实例(只有在运行时得知)类型,动态获取方法(这算是多态)
      1. 虚拟机提取对象的实际类型的方法表;
      2. 虚拟机搜索方法签名;
      3. 调用对象相匹配的方法

未完待续……

你可能感兴趣的:(基础拾遗(一))