008.day06

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();
posted @ 2018-07-20 17:43  Yokiia  阅读(149)  评论(0编辑  收藏  举报