购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

任务3
观察分析下面程序的运行结果

程序代码如图1-18所示。

图1-18 程序代码

程序中部分代码行后面用双斜杠//作了注释。

小张同学仔细看了这些行代码,明白要输出这些变量或常量值。自己想得对不对,验证的最好措施就是在Eclipse里运行一下。如果运行,小张已经彻底搞清楚了,运行代码的四步骤,按步骤,到编辑代码时,将代码敲进去。运行看结果如图1-19所示。

图1-19 运行结果

小张同学也看到运行结果了,这个任务告诉了小张同学学到什么了呢?

注1: Java的数据讲究类型,即数据类型,Java数据类型分为:基本数据类型(如图1-20所示)、引用类型(1-21所示)。

图1-20 基本数据类型

图1-21 引用数据类型

在基本数据类型里,整型分为四种,字节型、短整型、一般整型、长整型,它们的区别在于在机器里占的位数不一样,自然表示值的范围也就不同。同样的道理浮点型分为单精度型和双精度型。

Java基本数据类型占位及值域列表如表1-1所示。

表1-1 Java基本数据类型分类表

小张同学看到这张表之后,提出一个问题,这张表最后一列称为“对应的包装类”这是什么意思呢?原来Java有一个著名的论断:“一切皆对象”,那么基本数据类型不是对象呀?怎么办?基本数据类型都有对应的类的类型,简称包装类。

注2: 标识符:在程序设计语言中存在的任何一个成分(如常量、变量、方法、类等)都需要有一个名字以标识它的存在及唯一性,这个名字就是标识符。

Java标识符遵循的规则:

(1)Java标识符可以由字母、数字、下画线和$组成,但必须以字母、下画线“_”美元符“$”或汉字开头。

(2)Java标识符区分大小写。

(3)Java标识符不能是保留字。保留字是Java语言本身固有的,用以提供Java程序设计语言自身拥有的功能,程序设计人员利用这些不变的部分解决现实世界中万变的问题。解决问题总是遵循“根据已有的,解决想要的”。Java语言固定的部分自然被认为是已有的。

(4)Java标识符没有长度限制。

(5)Java标识符取名时最好遵循“望名生义”的原则。一定要注意,名字不能随便起。其实,在现实世界里,名字的一个最重要的作用,将一个事物和另一个事物给区别开来了,比如:一样东西叫西瓜,一样东西叫日光灯,它们之间可区别开来。同样,在计算机的世界里,名字也很重要,也是起到标识的作用,会有哪些名字呢?工程名、包名、类名、对象名、变量名、常量名、方法名、文件名等。

(6)在Java世界里,这些名字都是由字母、数字、下画线、美元符、汉字组成的,如何表示代表类名呢还是变量名呢?这就是经典命名规则。经典命名规则有:匈牙利命名法、骆驼命名法、帕斯卡(pascal)命名法三种。

① 匈牙利命名法。

Windows 编程中用到的变量(还包括宏)的命名规则是匈牙利命名法,这种命名技术是由一位能干的 Microsoft 程序员查尔斯·西蒙尼(Charles Simonyi)提出的。

匈牙利命名法通过在变量名前面加上相应的小写字母的符号标识作为前缀,标识出变量的作用域,类型等。这些符号可以多个同时使用,顺序是先m_(成员变量),再指针,再简单数据类型,再其他。例如:m_lpszStr,表示指向一个以0字符结尾的字符串的长指针成员变量。前缀m_代表类的成员变量,前缀lp代表长指针,前缀sz代表以null结尾的字符串,接着大写字母开始的Str,整个m_lpszStr是一个意义的标识符。

匈牙利命名法关键是:标识符的名字以一个或者多个小写字母开头作为前缀;前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。

例如:fRadius,代表float型的半径变量。

② 骆驼命名法:(camel方法)也称驼峰命名法。

骆驼命名法,正如它的名称所表示的那样,是指混合使用大小写字母来构成变量和函数的名字。例如,下面是分别用驼峰命名法和下画线法命名的同一个函数:

第一个函数名使用了骆驼式命名法——函数名中的每一个逻辑断点都有一个大写字母来标记;第二个函数名使用了下画线法——函数名中的每一个逻辑断点都有一个下画线来标记。

驼峰命名法近年来越来越流行了,在许多新的函数库和Microsoft Windows这样的环境中,它使用得相当多。另一方面,下画线法是C出现后开始流行起来的,在许多旧的程序和UNIX这样的环境中,它的使用非常普遍。

③ 帕斯卡(pascal)命名法:

与驼峰命名法类似,只不过驼峰命名法是首字母小写,而帕斯卡命名法是首字母大写。

如:public void DisplayInfo();

这里DisplayInfo,UserName二者都是采用了帕斯卡命名法。

说得简单些:

MyData 就是一个帕斯卡命名的示例。

而 myData 是一个驼峰命名法,它第一个单词的第一个字母小写,后面的单词首字母大写,看起来像一个骆驼,而iMyData是一个匈牙利命名法,它的小写的i说明了它的类型,后面的和帕斯卡命名相同,指示了该变量的用途。

小张同学现在很关心,Java中如何运用这些规则呢?

在 Java 中,类名使用帕斯卡命名方式,如:FindDataUtil;变量名和方法名小写开始的驼峰命名,如:studentName;常量名用全大写:MAX_PARAMETER_COUNT=100。

注3: 常量/变量

如图1-22所示是常量概述。

图1-22 常量概述

变量就是指在程序运行中其值可以改变的量,其要用标识符表示,具有数据类型,并且遵循先声明后使用的原则。任务3中代码的第6行至第13行都有变量声明,不过这个任务当中,在声明变量的同时赋了初值,这也是可以的。

注4: 数据类型转换

任务3中第11行,将50这个整数赋给长整型变量l,从道理上讲,给长整型赋值,50后面要加后缀L(或者小l),变成50L,这样才对,可是任务3并没有语法错,而将第10行若换成10L,结果如何呢?语法关都过不了。为节省篇幅,列出部分代码,如图1-23所示。

图1-23 有语法错误的代码

小张同学想在第10行加L不行,在第11行加不加L都行。这是为何呢?

这其中的奥妙就在于数据类型转换。原来,数据类型转换分为两种,一种是自动类型转换,一种是强制类型转换。自动类型转换,它是按照人的思维习惯来处理问题的,把一个整数50,赋给一个能表示更大范围的长整型这是顺理成章的事,而反之就不行,你把一个长整型数据 10L 赋给一个表示范围较小的整型变量就行不通。但是如果一定要行得通,要么去掉10L后缀L,要么可以采取强制类型转换,消除语法错误,如图1-24所示。

图1-24 强制类型转换的例子

强制类型转换的语法格式就是在你想要转换的数据前加上一对圆括号,圆括号里放的是你想转换成的数据类型。此处第10行就是int i=(int)10L;。

自动类型转换其实是需要条件的,一是两者要相互兼容;二是转换后的数据类型比转换前的数据类型表示的范围大。自动转换示意图如图1-25所示。

图1-25 自动数据类型转换

类似float、double型,Java默认小数数据是double型,对于这两者也会涉及到数据类型及类型转换的情况。

至此,小张同学明白了数据有类型,类型可转换。小张心想在C语言中,字符数据与整型数据有着密切的关系,那么在Java中又如何呢? jJiszqBQRi1sSMSxJlwsu51cwiAZm5E2bDbsCuKhJLOcT8wARWiZeQ2fU4dBCT9k

点击中间区域
呼出菜单
上一章
目录
下一章
×