Java学习第三周总结

面向对象的四大支柱:

  • 抽象 - 定义一个类的过程就是一个抽象的过程(数据抽象、行为抽象)
    通过抽象我们可以将数据和操作数据的方法以"对象"的概念绑定到一起
    抽象的过程是一个仁者见仁智者见智的过程,对同一个对象做抽象可能会产生不同的结果

  • 封装 - 隐藏一切可以隐藏的实现细节,只向外界提供最简单的编程接口

  • 继承 - 从一个已有的类创建新类的过程,提供继承信息的叫父类(超类、基类)
    得到继承信息的叫子类(派生类、衍生类),继承是实现代码复用的一种手段.

  • 多态 - 同样的引用类型调用相同的方法但是做了不同的事情
    实现多态有两个关键步骤: 1.方法重写 ; 2.对象造型

  • 同样的类型调用相同的方法(发同样的消息)
    但是用了不同的事情 - 这就是多态(polymorphism)

  • 如何实现多态:
    1.方法重写 - 子类在继承父类的过程中对父类的方法给出自己的实现版本
    2.对象造型 - 用父类型的变量保存子类对象

  • 如果一个方法暂时无法给出实现 那么可以将其声明为抽象方法
    抽象方法需要用abstract关键字修饰且没有方法体
    如果一个类中有抽象方法(说明这个类不完整)那么必须被声明为抽象类
    抽象类不能实例化(不能创建抽象类的对象)
    抽象类是专门留给其他类去继承的类

重载 - 同一个类中有同名的方法 只要参数列表不相同就可以共存 - overload
重写 - 子类继承父类的过程中对父类已有方法给出新的实现版本 - override
我们能够操控的内存:
  • 栈 - 快、小 - 临时变量/局部变量

  • 堆 - 稍慢、大 - 对象

  • 方法区 - 代码、常量
    temp在栈上 它保存了堆上的Cat对象的地址
    通过temp就可以找到堆上的对应的Cat对象并给对象发消息
    所以我们通常把对象类型的变量称为对象的引用
    Java中的类型就分为两大类:

  • 基本数据类型(8种)和枚举类型

  • 引用类型

  • Java中有4种访问修饰符:
    private<default<protected<public

  • instanceof运算符可以判断对象是不是某种类型
    该运算符在程序运行时判定对象的类型 - RTTI

接口

  • 接口是方法声明的集合

  • 接口的三个关键点

    • 接口代表能力
    • 接口代表约定
    • 接口代表角色
  • 抽象类和接口本身不能实例化 但是可以使用就地实例化的方式来创建对象
    所谓就地实例化实际上是创建了匿名内部类(anonymous inner type)的对象

  • 接口之间可以继承的而且允许多重继承(一个接口继承多个接口)

Java8+ ---> Lambda表达式 ---> 匿名函数
  • 仅限接口中只有一个方法且没有默认方法的时候
    okButton.addActionListener(e ->{
    changeBgColor();
    });
类和类之间简单的说有三种关系:
  • is-a - 继承 - 学生和人
  • has-a关系 - 关联(聚合/合成) - 扑克和一张牌
  • use-a关系 - 依赖 - 人和房子
类和它实现的接口之间的关系:
  • play-a / like-a - 实现关系
重写(置换、覆盖、覆写): 父类有这个方法可能实现了可能没实现子类把父类的这个方法重新实现一次(给出自己的实现版本)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,805评论 18 399
  • 本文出自 Eddy Wiki ,转载请注明出处:http://eddy.wiki/interview-java.h...
    eddy_wiki阅读 1,229评论 0 5
  • 一:java概述:1,JDK:Java Development Kit,java的开发和运行环境,java的开发工...
    ZaneInTheSun阅读 2,718评论 0 11
  • (一)Java部分 1、列举出JAVA中6个比较常用的包【天威诚信面试题】 【参考答案】 java.lang;ja...
    独云阅读 7,147评论 0 62
  • 1.import static是Java 5增加的功能,就是将Import类中的静态方法,可以作为本类的静态方法来...
    XLsn0w阅读 1,278评论 0 2