本章工作任务
实现购物结算,打印购物小票
模拟商场幸运抽奖,计算会员卡各位数字之和
根据商品折扣判断折扣价
本章技能目标
掌握变量的概念
会使用常用数据类型
会使用赋值运算符、算术运算符和关系运算符
掌握键盘输入
本章简介
第 1 章主要学习了 Java 程序的基本框架,以及如何在 IDE 环境 IDEA 中创建 Java 应用程序。编写 Java 程序,在控制台显示信息,让我们对 Java 程序有了一个感性的认识。
Java 是一门高级程序语言,使用 Java 语言可以实现人机沟通,告诉计算机人让它做的事情。既然是语言,不可避免地要学习 "词汇"(变量、关键字、运算符等)、"句子"(一条指令)、"段落"(指令集)等。在本章,将学习到 Java 的一些基本 "词汇",包括变量、运算符和一些关键字等。使用它们,能编写出更多的指令。
预习作业
请按以下步骤预习本章内容:
1. 阅读、学习本章内容。
2. 标注出本章看不懂或存在疑惑的部分。
3. 整理、记录学习中的问题。
4. 熟记本章的英文单词。
1.背诵英文单词
请在预习时找出下列单词在教材中的用法,了解它们的含义和发音。
(1) double [ˈdʌbl]: adj. 两倍的;成对的;v. 加倍;对折
(2) string [strɪŋ]:n. 线,弦,细绳;一串,一行
(3) character [ˈkærəktər]:n. 性格,品质;特性;角色;[计] 字符
(4) integer [ˈɪntɪdʒər]:n. 整数
(5) scanner [ˈskænər]:n. [计] 扫描仪;扫描器;光电子扫描装置
(6) score [skɔːr]:n. 分数;二十;配乐;刻痕; vi. 得分;记分;刻痕
(7) name [neɪm]:n. 名称,名字;姓名;名誉
(8) boolean [ˈbuːliən]:adj. 布尔数学体系的
(9) true [trui]:adj. 真实的;正确的;n. 真实;准确
(10) false [fɔːls]:adj. 错误的;虚伪的;伪造的
2.预习并回答以下问题
请阅读本章内容,在作业本上完成以下简答题。
(1) Java 中常见的数据类型有哪些?
(2) 如何声明一个变量?
(3) boolean 类型的变量可以取哪些值?
(4) 关系运算符的作用是什么?
3.预习并完成编码题
(1) 编写并完成本章中所有示例代码。
(2) 请使用 Java 语言编写代码,完成以下功能。
① 使用变量存储自己的姓名并输出。
② 使用变量存储两个整数,求这两个整数的和并输出。
4.记录预习的问题
记录学习中遇到的问题,填写于下面的横线上,以便集中探讨解决。
技术内容
2.1变量和数据类型
2.1.1 变量
计算机的内存类似于人的大脑,计算机使用内存来记忆大量运算时要使用的数据。内存是一个物理设备,如何来存储一个数据呢?很简单,把内存想象成一间旅馆,要存储的数据就好比要住宿的客人。试想一下去旅馆住宿的场景。首先,旅馆的服务人员会询问要住什么样的房间,如单人间、双人间、总统套间;然后,根据选择的房间类型,服务员会安排一个合适的房间。"先开房间,后入住"就描述了数据存入内存的过程。首先,根据数据的类型为它在内存中分配一块空间(即找一个合适的房间),然后数据就可以放进这块空间中(即入住)。那么数据为什么对存储空间有要求呢?试想有三个客人,服务员安排了一个单人间,这能入住吗?分配的空间过小会导致数据无法存储。在下面的课程中将详细介绍。
到底使用内存做什么呢?看一看下面的问题,就可一目了然了。
问题:在银行中存储 1000 元钱,银行一年的利息是 5%, 那么一年后存款是多少?
分析:很简单,首先计算机在内存中开辟一块空间用来存储 1000, 然后把存储在内存中的数据1000 取出后进行计算,根据公式:本金×利率+本金(即1000×5%+1000), 获得的结果1050重新存入该存储空间,这就是一年后的存款了。图 2.1 显示了内存中存储数据的变化。可见,数据被存储在内存中,目的是便于在需要时取出来使用,或者如果这个数据被改变了,内存中存储的值也会随之进行相应的更新,以便下次使用新的数值。那么,内存中存储的这个数据到底在哪里,我们怎样获得它呢?
图 2.1 数据在内存中的存储
通常,根据内存地址可以找到这块内存空间的位置,也就找到了存储的数据。但是内存地址非常不好记,因此,我们给这块内存空间起一个别名,通过使用别名找到对应空间存储的数据。变量是一个数据存储空间的表示。变量和旅馆中的房间存在如表 2-1 所示的对应关系。
表 2-1 变量与房间的对应关系
通过变量名可以简单快速地找到它存储的数据。将数据指定给变量,就是将数据存储到以别名为变量名的那个房间;调用变量,就是将那个房间中的数据取出来使用。可见,变量是存储数据的一个基本单元,不同的变量相互独立。
2.1.2 数据类型
1.不同的数据类型
计算机的基本作用就是运算。要运算就需要数据,这些数据可以由用户输入、从文件获得,甚至从网络中得到。数据不计其数,但是我们可以把数据归类。例如,根据是整数还是小数,是一串字符还是单个字符来分类。例如,对下面的数据分类。
手机品牌:"三星"、"小米"、"苹果"。
手机价格(单位:元): 4500.34、1200.00、3900.5。
手机电池待机时间(单位:天):2、5、3。
这里,手机品牌都是由一串字符组成的,手机价格都是小数,手机电池待机时间都是整数。当然还会经常碰到别的数据,如手机"开"或"关",这就是一个字符。
2. Java 常用数据类型
如何在程序中表示不同类型的数据呢? Java 中定义了许多数据类型,生活中的数据都能在这里得到匹配。表 2_2 列出了常用 Java 数据类型。
表 2-2 常用 Java 数据类型
在 2.1.1 节的讲解中提到了 "根据数据的类型为它在内存中分配一块空间",数据的类型是整数、小数还是字符,不同的数据在存储时所需要的空间各不相同。例如,int 型的数值要占四字节,而 double型的数值占八字节。因此,不同类型的数据就需要用不同大小的内存空间来存储。其中,int 、double 、char 都是 Java 定义的关键字。
2.1.3 变量声明及使用
在程序运行的过程中,将数值通过变量加以存储,以便程序随时使用,整体步骤如下。
(1) 根据数据的类型在内存中分配一个合适的"房间",并给它命名,即"变量名"。
(2) 将数据存储到这个"房间"中。
(3) 从"房间"中取出数据使用,可以通过变量名来获得。
现在,大家一定能够很清楚地想象到一个数据如何被存储到内存中及如何被取出来使用了。如何使用 Java 语言真正实现这一过程呢?
问题:根据 2.1.1 节中描述的问题,在内存中存储本金 1000 元,显示内存中存储的数据的值。
示例1
package cn.dbit.demo; public class MyVariable { public static void main(String[] args) { int money = 1000; //存储本息 System.out.println(money); //显示存储的数据的值 } }
示例 1 展示了存储数据和使用数据的过程,输出结果如下。
1000
关键代码虽只有两行,但展示了如何定义和使用变量,任何复杂的程序都由此构成。下面对其进行分析。
(1) 声明变量,即"根据数据类型在内存中申请一块空间",这里需要给变量命名。
语法
数据类型 变量名;
其中,数据类型可以是 Java 定义的任意一种数据类型。例如,要存储 Java 考试最高分 98.5 、获得最高分的学生姓名 "张三" 及性别 ’男’。
double score; //声明双精度浮点型变量score存储分数
String name; //声明字符串型变量name存储学生姓名
char sex; //声明字符型变量sex存储性别
(2) 给变量赋值,即"将数据存储至对应的内存空间"。
score = 98.5; //存储98.5
name = "张三"; //存储”张三”
sex = '男'; //存储 1 男'
这样的分解步骤有些烦琐,也可以将步骤 (1) 和步骤 (2) 合二为一,如示例 1 所示,在声明一个变量的同时给变量赋值。
语法
数据类型 变量名 = 值;
例如:
double score = 98.5;
String name = "张三";
char sex = '男';
(3) 调用变量。使用存储的变量, 我们称之为 "调用变量"。
System.out.println(score); //从控制台输出变量score存储的值
System.out.println(name); //从控制台输出变量name存储的值
System.out.println(sex); //从控制台输出变量sex存储的值
可见,使用声明的变量名就是使用变量对应的内存空间中存储的数据。
另外,需要注意的是,尽管可以选用任意一种自己喜欢的方式进行变量声明和赋值,但是要记住 "变量都必须声明和赋值后才能使用"。因此要想使用一个变量,变量的声明和赋值必不可少。