您的位置:首页 > 编程语言 > Java开发

Java基础:第九讲 基本信息表示

2009-10-26 11:34 351 查看
第二部分:基本信息表示与基本信息处理
主要内容:
l 基本数据表示,包括基本数据类型、常量和变量;
l 基本数据处理,主要介绍各种基本运算符;
l 流程控制,介绍选择和循环结构;
l 代码共享,介绍方法的定义和使用;
l 字符串的使用;
l 日期的使用;
l 数字的处理;
l Math类的使用。

本次介绍基本数据表示。

之前的课程已经说过,语言是用来表示信息,然后对信息进行处理,本次内容介绍信息(有时候我会用“数据”,有一些区别,但是对我们现在讲的内容没有影响)的表示。

先看看我们的自然语言,要描述某个人,并且这个人不是你周围的人,你可能会说“中等身材,眼睛比较小,长头发,下颚有颗痣,口才特别好”,如果这个人是大家都认识的,你可以直接说“成龙”,因为听到名字就知道是谁了,知道了他的基本信息。

如果使用Java语言来描述这个人的信息,如何描述呢?最简单的方法就是直接使用这句话。例如,输出这个人的信息,你可以写:
System.out.println(“中等身材,眼睛比较小,长头发,下颚有颗痣,口才特别好”);
把这个人写到数据库中,可以直接把这句话写如数据库中。这句话成为字符串,有了字符串,所有的信息都可以表示成字符串了,这样会使用字符串是不是就会信息表示了,可以这样认为,并且字符串在任何语言中都是最重要的(个人认为),因为任何信息都可以表示成字符串,从输入和输出的角度来说,也都是按照字符串的形式进行了。

但是把信息全部表示成字符串,尤其是这样一个长字符串的时候,如果想从里面提取信息或者执行一些操作就比较麻烦了,例如要比较两个人的身高,需要分别从两个人的信息中取出身高信息(我们人来取比较简单,但是程序获取就比较难了),然后比较。所以我们要把它分解成更小的单元并且需要对描述方式进行约束。上面的信息可以转换为多条:
身高:中等 height = middle 或者 height=170
眼睛:比较小 eyes = little
头发:比较长 hair = long
下颚是否有痣:是 hasZhi = true
这时候身高还可以用数字表示。如果使用数字表示,可以表示为170,也可以表示为1.7,因为单位不一样。这时候我们可以添加注释来告诉用户,例如输入的时候,可以提示用户单位是米还是厘米,输出的时候数字的后面加上单位。这就是如何把我们信息转换为编程语言,如何把编程语言中的信息转换为自然语言。

为了让Java语言来表示这些基本信息,首先要知道现实世界中的基本信息有哪些类型。简单的分可以分为:字符串、数字、日期和真假。关于日期在以后的内容中介绍。下面介绍在Java中这些信息类型的表示。
字符串
Java中使用java.lang.String来表示字符串,注意String不属于基本的数据类型,但是字符串比较特殊,特殊性在“字符串的使用”中介绍。
Java中提供的与字符串相关的是字符类型,表示为char。分为常量和变量。
字符常量
字符通常使用单引号括起来,例如:
字符“a”可以表示为:’a’
字符“1”可以表示为:’1’
注意大写的A和小写的a表示两个不同的字符。
有些比较特殊的字符,例如换行符没有办法直接表示,需要使用转义字符,格式为反斜杠加上特殊字符,例如换行可以表示为’/r’。下面Java中的转义字符:
/n 回车(/u000a)
/t 水平制表符(/u0009)
/b 空格(/u0008)
/r 换行(/u000d)
/f 换页(/u000c)
/' 单引号(/u0027)
/" 双引号(/u0022)
// 反斜杠(/u005c)
/ddd 三位八进制
/udddd 四位十六进制
字符变量
常量在程序中可以表示基本的字符信息,但是不能说明它的含义,例如要表示衣服的类型为a,直接写成a并不能表示它是衣服的类型。另外整个信息可能会发生变化,所以为了表示字符的含义,需要使用变量。例如衣服的类型为a,可以表示为:
type = ‘a’
其中,type表示衣服的类型,等号表示“是”,是对变量的赋值。在声明这个变量的时候需要给出类型,所以通常会写成:
char type=’a’
在Java中,这就是一个语句,每个语句要用分号结束,所以应该写成:
char type=’a’;
注意:分号和引号都应该说英文的,否则会报错:无效字符
也可以把变量的声明和赋值分开写,例如:
char type;
type=’a’;
char表示字符类型,是语法规定的,必须这样写。type是用户指定的名字,是一种标识符,标识符应该按照一定的命名规则来写。
标识符的命名规则
标识符的命名规则如下:
l 首字符必须是字母(大小写)、下划线_或美元符$;
l 后面的字母除了可以使用以上字符外,还可以使用数字;
l 标识符不能使用系统保留的关键字。
系统的关键字如下:

abstract
continue
for
new
switch
assert
***
default
goto
*
package
synchronized
boolean
do
if
private
this
break
double
implements
protected
throw
byte
else
import
public
throws
case
enum
****
instanceof
return
transient
catch
extends
int
short
try
char
final
interface
static
void
class
finally
long
strictfp
**
volatile
const
*
float
native
super
while
*not used
**added in 1.2
***added in 1.4
****added in 5.0
下面的标识符识正确的:
height
input1
$value
time_12
下面的标识符不正确:
1value
value#
try
思考:为什么不正确?
在定义变量的时候还应该有一些编码习惯问题:
l 变量首字母小写;
l 多个单词组成的变量,后面的单词首字母大写;
l 变量名应该尽量有意义。
这些不是命名规范,但应该遵循。
真假
通常称为布尔值,类型名字为boolean。有两个常量,true和false,分别表示真和假,或者是和否。
例如表示某个信息是否有效,可以使用boolean类型表示:
boolean validate;
validate=true;
validate=false;
数字
数字分为整数和浮点数。整数又分为byte short int long。浮点数又分为float和double。区别在于表示的范围不同。
byte占用一个字节,表示的范围-128 ~ 127,表示28个数字,从-27到27-1。可以通过下面的方法得到最大值和最小值:Byte. MAX_VALUE和Byte.MIN_VALUE。
short占两个字节,int占4个字节,long占8个字节,float占4个字节,double占8个字节。

整数类型的常量直接使用数字表示即可。例如20,23,-30。
double类型的常用可以直接使用数字,例如32323,3334.33。
float类型的常量,如果不包含小数部分,可以直接写数字,如果包含小数部分,需要在后面使用f表示,例如232323,23.33f,如果不写f,系统会认为这是一个double类型,在赋值的时候会出错。例如下面的代码:
float radius=32.3;
在编译的时候,会出错,应该写成:
float radius = 32.3f;

注意:浮点数在计算机中存储的时候可能不是这个数字本身,因为在计算机中使用二进表示,32.3转换成二进制是多少呢?
基本数据类型的封装类型
byte、short、int、long、float、double、char和boolean是Java提供的8种基本数据类型。为了让这些基本数据类型与Java中的类和对象的概念一致,Java提供了这些基本数据类型的封装类型。基本数据类型只表示信息,没有处理功能,而封装类型除了表示信息之外,还提供了一些对信息进行处理的方法
对应关系如下:
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean

可以把基本数据类型转换为封装类型,也可以把封装类型转换为基本数据类型,下面以int与Integer之间的转换为例。
int height=170; // 声明整型变量并赋值
Integer height2=new Integer(height); //转换成封装类型
Height = height2.intValue(); // 转换成基本数据类型
在Java5之后,可以直接写:
int height=170; // 声明整型变量并赋值
Integer height2=height; //转换成封装类型
Height = height2; // 转换成基本数据类型
系统完成自动转换。

本次内容需要记住:
l 8种基本数据类型;
l 标识符的命名规则;
l 变量的定义与赋值;
l 8种基本数据类型的常量;
l 基本数据类型与封装类型。

上一讲:第八讲 使用集成开发环境(上)
下一讲:第十讲 基本运算——运算
下次介绍基本数据处理,主要是各种运算符的使用。
李绪成 CSDN Blog:http://blog.csdn.net/javaeeteacher
邀请您为好友:http://student.csdn.net/invite.php?u=124362&c=7be8ba2b6f3b6cc5
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: