前言:一开始接触的就是jsp,边学边做,转眼就一年,随着接触的项目模块增多,深深感觉自己身上java基础的浅薄,于是乎便如前人所言的道路般,转头奔向高不可测的java课本,重新认识java,重新识记java的基础概念便是现在该做的事情了。
一.经典案例深刻认识java实体
实体:银行账号
属性:账号、户名、密码、当前余额 b 、透支限额 m
约束:b + m >= 0
行为:
存款
输入:存款金额a
步骤1:令 b = b + a 并终止
取款
输入:取款金额 a
输出:已取金额 c
步骤1:如果 a > b + m 则 c = 0 并转向步骤2 ;否则令 c = a、b = b-a 并终止
步骤2:警告超额并终止
案例说明:这里涉及两个不同范畴的概念:银行账户是一个抽象的、一般化的集合性概念,而张三的账户、李四的账户则是具体的、实实在在的个体。透过观察和分析不同的个体、抽象出一般化的实体概念,这种抽象概念成为“类型”,类型中的个体称为“实例”。我们在以后的java的编程中就会遇到很多“类型实例化”化的操作,其原理就是脱胎于这种概念。,明白这个案例,你就明白类型实例化的概念了。
这个时候,还不能过分沉陷于银行账户这个类型概念,因为要知道,做为一家银行的金融管理,可不单单就一个银行账户那么简单
在java程序中,实体的概念用“类”来定义,同一种实体的具体实例用“对象”来模拟,实体的属性用数据或者对象来表述,实体的行为则用“方法”来表示。
问题 | 程序 |
存货的实体概念 | 类Inventory |
属性 | 数据 |
存货数量 | 浮点数据quantity |
存货金额 | 浮点数据amount |
行为 | 方法 |
验收入库 | 方法checkIn() |
领料出库 | 方法checkOut() |
查询数量 | 方法getQuantity() |
查询金额 | 方法getAmount() |
约束 | 无直接的对应 |
存货的具体实例 | 对象 |
笔记本 | 对象notebook |
类Inventory是一个抽象概念在计算机中的描述,类本身并不能直接完成指定的功能。程序必须根据该类的定义创建一些对象实例,通过这些对象的行为完成指定功能。比如可以用main()方法创建了一个表示笔记本的对象实例notebook,通过notebook.checkIn(),notebook.checkOut()等行为完成存货的入库和出库功能
java程序从main()开始执行,由main()去创建一个对象并激活其行为,通过这一对象的行为又去创建其他对象并激活其行为。