对象与类

面向对象程序设计概述

  • OOP
  • 结构化过程化程序设计
  • 对象
  • 类构造对象的过程称为创建类的实例
  • 封装
  • 实例域
  • 方法
  • 对象状态
  • 实现封装的关键在于绝不让类中的方法直接方位其他类的实例域
  • 继承
  • 对象
  • 对象的行为
  • 对象的状态
  • 对象标识
  • 识别类
  • 类之间的关系
  1. 依赖(use-a)
  2. 聚合(has-a)
  3. 继承(is-a)
  • 类之间的关系及UML符号

使用预定义类

  • 对象与对象变量
  • LocalDate类
  • 更改器方法和访问器方法

自定义类

  • 构造器
  • 隐式参数,显示参数
  • 封装的优点
  • 基于类的访问权限
  • 私有方法
  • final实例域

静态域,静态方法

  • 静态域
  • 静态常量
  • 静态方法
  • 工厂方法
  • main方法

方法参数

  • 按值调用(Java使用)
  • 按引用调用
  • 参数类型
  1. 基本数据类型
  2. 对象引用

对象构造

  • 重载
  • 默认域初始化

域将被默认初始化,但局部变量必须明确初始化

  • 无参数构造器
  • 显示域初始化(在执行构造器之间赋值)
  • 参数名
  • 调用另一个构造器(this(...))
  • 初始化块

调用构造器的具体步骤

  1. 所有数据域被默认初始化
  2. 按照在类的声明中的顺序依次执行域初始化和块初始化
  3. 如果构造器第一行调用了第二个构造器,则执行第二个构造器
  4. 执行这个构造器主体

静态初始化块将在类被加载时执行

  • 对象析构与finalize方法

不要依赖finalize方法释放短缺资源,该方法由垃圾回收器执行

包用于将类组织起来

  • 导入类
  • 静态导入
  • 将类放入包中
  • 包作用域

类路径

  1. 文件系统子目录
  2. Jar包
  • 类路径之间用分号:相隔
  • javac编译器总是在当前路径查找文件
  • Java虚拟机如果未指定类路径,包含当前目录,如果指定了类路径,必须显示包含当前目录(.)才包含当前目录
  • 设置类路径
  1. 命令选项
java -classpath /home/chenyq/classdir:.:/home/usr/archives/archives.jar Test
  1. CLASSPATH环境变量
#Linux
export CLASSPATH=/home/chenyq/classdir:.:/home/usr/archives/archives.jar
#Windows
set CLASSPATH=C:\classdir:.:C:\archives\archives.jar

文档注释

  • javadoc程序
  • 应该为包,公有类与接口,共有的和受保护的构造器和方法,公有和受保护的域
  • 类注释
  • 方法注释
  • 域注释
  • 通用注释
  1. @author
  2. @version
  3. @since
  4. @deprecated
  5. @see
  • 包与概述注释
  • 注释抽取

javadoc -d docDir packageDir

类设计技巧

  • 一定要保证数据私有
  • 一定要对数据进行初始化
  • 不要在类中使用过多的基本类型
  • 不是所有的域都需要独立的域访问器和域更改器
  • 将职责过多的类进行分解
  • 类名和方法名要能够体现他们的职责
  • 有限使用不可变的类

你可能感兴趣的:(对象与类)