Java 基础到进阶_课程笔记_翁恺


先定义接口,再考虑实现技术

For Each

  • 作用:遍历集合、数组
  • 格式:
    for(元素类型t 元素变量x :遍历对象obj){
    引用了x的Java语句;}

ArrayList类:容器类

ArrayList name = new ArrayList();
添加内容:name.add(value); name.add(value,location)
获取大小:name.size();
获取索引处的内容:name.get(index);
移除内容:name.remove(index)返回移除的内容
遍历容器内所有元素:name.toArray(存放位置处);
可以直接使用System.out.print 输出

对象数组

对象数组内的所有元素都是对象的管理者而非对象本身

Hash表

Hashset内部的相同的数只有一个
HashMap:一种数据结果,值用一对的方式存储(特殊容器)
一个K(Key),一个V(Value)
HashMap names = new HashMap();
HashMap总共有多少key: names.keySet().size();
获取K对应的V值:names.get(K);

面向对象程序设计基本的原则

  • 消除代码复制
  • 增加可扩展性:框架+数据来提高可扩展性
    • 用封装来降低耦合
    • 用接口来实现聚合
    • 用容器来实现灵活性

两种抽象

  • 与具体相对
    • 表示一种概念而非实体
  • 与细节相对
    • 表示一定程度上忽略细节而着眼大局

数据和表现分离

  • 程序的业务逻辑和表现无关
  • 责任驱动的设计
    • 程序中实现的功能分配到合适的类/对象中去设计

接口

  • 接口是纯抽象类
    • 所有成员函数为抽象函数
    • 所有成员变量为public static final
  • 接口实现
    • 接口用implements
    • 类可以实现很多接口
  • 面向接口的编程方式
    • 设计程序先定义接口,再实现类
    • 任何需要在函数间传入传出的一定是接口而不是具体的类

MVC

  • 数据、表现和控制三者分离,各负其责
    • M = model 模型
      • 保存和维护数据,提供接口让外部修改数据,通知表现需要刷新
    • V = view 表现
      • 从模型获得数据,根据数据画表现
    • C = control 控制
      • 从用户得到输入,根据输入调整数据

流的基础类

  • InputStream
  • OutputStream
    文件流
  • FileInputStream
  • FileOutputStream