Lecture 1 Java程序入门与代码管理

  1. 面向对象是一种以对象为中心来构建程序逻辑的方法;

    • 程序逻辑:数据及其关系 + 行为及其关系
  2. 类与对象:

    • 面向对象语言使用“类”(class)这个概念来抽象化“对象”,一个类可以实例化出任意数量的对象,对象包含了数据和行为
    • Java程序中类由属性和方法组成,其中属性定义了数据结构,方法定义了对数据结构的操作函数
    • 每个类都有一种构造方法用以实例化对象,而所谓构造方法则是指初始化该类的属性变量,然后返回对象指针
    • 类的名称与相应文件的名称必须一致,一般一个Java文件只定义一个类
  3. 封装,继承,多态:

    (1)封装: 提供清晰的接口,让类的内部复杂性外部不可见;

    • 类封装了数据和方法,通过可见性来限制外部对内部数据和方法的访问
    • 改变类的内部实现细节不影响类的使用者的使用

    (2)继承: 建立类之间的抽象层次来协同降低复杂性;

    • 子类从父类中获得属性和方法的机制
    • 子类可以获得父类的设计与实现,从而实现复用

    • 子类可以对父类进行拓展

    (3)多态:类通过提供多种形态方法来解耦复杂度;

    • 解藕了类针对同一个指令的多种处理逻辑,面向对象语言提供了自动根据对象和输入参数来匹配合适的方法
    • 不同功能形态以参数区分
  4. 变量作用域:

    (1)类级:

    • 一个类的所有实例化对象共享访问该类的静态成员变量(static)

    (2)对象级:

    • 每个实例化对象拥有一份对立的类中声明的普通成员变量

    (3)方法级:

    • 在方法中声明的局部变量(包括在参数中声明的和在方法体中声明的变量),在每次方法执行时变量的取值都会初始化

    (4)语块级:

    • 方法语句块中声明的局部变量,能够覆盖所有上一层次语句块所声明的变量
  5. 接口(interface):

    • 接口是与类处于同一层次的类型,接口中只有方法声明没有属性,且接口中的方法没有实现体

    • 任何一个类都可以实现一个接口,进而使用该接口来调用接口类型中的方法

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      public interface Showable { // 定义一个Showable接口类型
      void print (); //接口类型中定义的print方法
      }

      public class Agent { // 我们考虑有Agent这样一个类
      ...
      public void show(Showable person) { /* 在Agent类中定义一个show方法,这个方法的参数是Showable接口类型的一个实例化的接口person*/
      person.print(); /* 我们通过person.print()的方式来调用print()*/
      }
      }
  6. Java程序中的关系:

    • 类关系:继承关系,关联关系
    • 类与接口关系:实现关系,关联关系
    • 接口间关系:继承关系
  7. Java程序中的访问权限设置: 一个类中的成员能否被外部访问的规则

    • public:任意外部对象都能访问
    • protected:任意本类对象或子类对象都能访问
    • private:只有本类才能访问
  8. Java程序中的static声明:

    (1)static关键字用于声明属性和方法

    (2)类的静态属性可以被类的所有对象共享访问

    (3)方法访问属性:

    • 静态方法只能访问静态属性
    • 非静态方法能访问非静态属性和静态属性

    (4)方法调用方法:

    • 静态方法只能调用静态方法
    • 非静态方法可以调用非静态方法和静态方法
  9. Java程序中的Object类:

    所有自定义的类都默认是Object的子类,Object中内置了许多重要的方法,如equals方法等。由于子类可以继承父类的方法,我们在自定义的类中可以使用这些方法;