day06笔记
一、业务场景分析
1. 需求内容
模拟顾客来到商场,浏览挑选商品,完成支付,离开商场的过程
2. 模型设计
根据需要,分析得出可以初步使用四个对象进行场景构建
- 顾客
- 商品
- 店员
- 商场
3. 详细设计
具体分析每个实体类应该具有的属性和行为,并初步定义填充
1. 顾客
- 属性:金额,标识
- 行为:进入商场,离开商场,浏览商品,挑选商品,支付买单
2. 商品
- 属性:编号,名称,价格,库存,生产日期
- 行为
3. 店员
- 属性:
- 行为:欢迎顾客,介绍商品,订单信息
4. 商场
- 属性:名称,类型,地点
- 行为
4. 业务实现
1. 分析业务流程
2. 代码实现
// 实例化一个商场对象
Mall mall = new Mall("森马", "西部硅谷");
// 实例化一个顾客对象
Customer customer = new Customer("sand", 500f);
// 进入商场
customer.in(mall);
// 实例化一个店员对象
Service service = new Service();
// 店员接待
service.welcome();
// 实例化一个商品对象
Product product = new Product("01", "运动T恤", 200f, 20, "2018年5月");
// 顾客浏览商品
customer.serach(product);
// 商品介绍,购买引导
service.showProduct();
// 初始化工具类
Scanner scanner = new Scanner(System.in);
// 读取用户的选择->使用true/false字符串
boolean select = scanner.nextBoolean();
// 发起购买
if (select) {
// 顾客付钱
boolean result = customer.pay(product);
if (result) {
// 提供小票
service.showOrder(customer,product);
}else {
// 支付失败
System.out.println("下次再来");
}
}
// 释放资源
scanner.close();
// 离开商场
customer.leave();
二、Java数组
最近本的集合类型,可以装多个数据或引用类型的对象,数组本身也是引用类型
- 定义方式:数据类型/引用类型[] 变量名称;
- 定义方式:数据类型/引用类型 变量名称[];
int[] a;
int a[];// 不推荐使用
- 存储方式:内存中的连续地址,引用指向首个元素地址
- 静态初始化:在初始化时,数组中的元素已经确定
- 动态初始化:指定数组长度,默认使用零值初始化
int[] a = new int[] {1,2,3,4,5};// 静态初始化标准形式
int[] a = {5,6,7,8,9};// 静态初始化简写形式
int[] a = new int[5];// 动态初始化
- 数组元素取用方式:通过索引下标->非负整数,从0开始,代表第一项
a[0] = 10;
System.out.println(a[1]);
- 基本数据类型传递为值传递,数组及引用类型为地址传递
- 使用final修饰的数组为引用不可变
final int[] a = new int[5];
int[] b = new int[3];
a[0] = 5;// 编译通过
a = b;// 编译不通过
- 数组遍历方式:普通for循环,使用length属性获得数组的长度
- 数组下标范围:0->length-1
三、异常
程序出现较为严重的问题,会触发java的异常处理机制
- 预编译阶段(程序运行之前):进行异常检查(针对于可能出现异常的工具类等)
- 运行时异常:在程序运行时出现的异常,如果没有手动处理,会出现异常提示信息
- 数组下标越界:ArrayIndexOutOfBoundsException
int[] a = new
- 越界异常的原因:超出数组变量的管辖范围
- 空指针异常:元素未实例化(在内存当中未分配空间)时,却调用了其中的方法或属性
四、扩展知识点
使用String中的toCharArray方法可以将某个字符串转换为一个字符数组,数组中的每个元素为字符串中的单个字符
Scanner scanner = new Scanner(System.in);
String number = scanner.nextLine();
char[] a = number.toCharArray();
for (char c : a) {
System.out.println(c);
}
scanner.close();