目录
3.1 Java主类结构
一个Java程序是由若干个类组成的。
3.2 基本数据类型
3.2.1 整数类型
整数类型用来储存整数数值,即没有小数部分的数值,可以是正数,也可以是负数,整型数据根据它在内存中所占大小的不同,可分为byte、short、int和long 4种类型。它们具有不同的取值范围,如图所示:
注意:给变量赋值时,要注意取值范围,超出相应范围就会出错。
例:类型的使用
代码为:
运行结果为:
3.2.2浮点类型
浮点类型表示有小数部分的数字。Java语言中浮点类型分为单精度浮点类型(float)和双精度浮点类型(double),它们具有不同的取值范围,如表图所示:
注意: 定义float型小数变量时,则需要在小数后面添加F或发,如果不加F或f,系统会认为是double类型数据,进而出错。
例 根据身高体重计算BMI指数
代码如下:
运行结果:
3.2.3 字符类型
1、char型
字符类型(char)用于储存单个字符,占用16位(两个字节)的内存空间。在声明字符型变量时,要以单引号表示,如“s”表示一个字符。
2、转义字符
转义字符是一种特殊的字符变量,其以反斜杠“\”开头,后跟一个或多个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义”。Java中的转义字符如图所示:
将转义字符赋值给字符变量时,与字符常量值一样需要使用单引号。
例 转义字符的使用
代码如下:
运行结果:
3.2.4 布尔类型
布尔类型又称逻辑类型,通过关键字boolean来声明布尔类型变量。只有true和false两个值,分别代表布尔逻辑中的“真”和“假”,布尔值不能与整数类型进行转换。布尔类型通常被用在流程控制中作为判断条件。
例 声明boolean型变量
代码如图:
运行结果:
3.3 变量与常量
3.3.1 标识符与关键字
1.标识符
Java语言规定标识符由任意顺序的字母、下划线(_)、美元符号($)和数字组成,并且第一个字符不能是数字。标识符不能是Java中的保留关键字。
注意:
1.由字母、下划线、美元符号和数字组成
2.不能以数字开头
3.要避开关键字
2.关键字
关键字是Java语言中已经被赋予特定意义的一些单词,不可以把这些字作为标识符来使用。简单理解为凡是在Eclipse变成红色粗体的单词,都是关键字。Java语言中的关键字如图所示:
3.3.2 声明变量
声明变量就是要告诉编译器这个变量的数据类型,这样编译器才知道需要配置多少空间给它,以及它能存放什么样的数据。在程序运行过程中,空间内的值是变化的,这个内存空间就称为变量。为了便于操作,给这个空间取个名字,称为变量名。对于变量的命名并不是任意的,应遵循以下几条规则:
1 变量名必须是一个有效的标识符。
2 变量名不可以使用Java中的关键字。
3 变量名不能重复。
4 应选择有意义的单词作为变量名。
3.3.3 声明常量
在程序运行过程中一直不会改变的量称为常量,通常也被称为"final变量"。常量在整个程序中只能被赋值一次。
例 尝试给常量赋值,观察是否会发生错误
代码如下:
运行结果:
从这个结果可以看到,Part运行后发生了错误,异常日志中记载Part类出现编译问题,此编译问题正是常量number被二次赋值。
3.3.4 变量的有效范围
1、成员变量
在类体中的声明的变量称为全局变量(成员变量),全局变量在整个类中都有效。
2、局部变量
在类的方法体中的声明的变量称为局部变量,局部变量只能在当前代码块中有效。
例 把成员变量“排挤掉”的局部变量
代码如下:
运行结果:
3.4运算符
3.4.1 赋值运算符
赋值运算符以符号“=”表示,它是一个双目运算符(对两个操作数做处理),其功能是将右边操作数所含的值赋给左边的操作数。例如:
int a=100; //该表达式是将100赋值给变量a
左边的操作数必须是一个量,而右边的操作数则可以是变量(如 a、number)、常量(如 123、’book‘)、有效的表达式(如 45*12)。
例 使用赋值运算符同时为俩个变量赋值
代码如下:
运行结果:
3.4.2 算术运算符
Java中的算术运算符主要有+(加号)、—(减号)、*(乘号)、/(除号)、%(求余),它们都是双目运算符。
例 使用算术运算符来模拟计算器
代码如下:
运行结果:
3.4.3 自增和自减运算符
自增和自减运算符是单目运算符,可以放在变量之前,也可以放在变量之后。自增和自减运算符的作用是使变量的值增1或减1。
3.4.4 比较运算符
比较运算符属于二元运算符,用于程序中的变量之间、变量和自变量之间以及其他类型的信息之
间的比较。比较运算符的运算结果是boolean型。当运算符对应的关系成立时,运算结果为true,否则
为false。所有比较运算符通常作为判断的依据用在条件语句中。比较运算符共有6个,如表3.6所示。
例 使用俩个不同的比较运算符判断俩个整数的关系
代码如下:
运行结果:
3.4.5 逻辑运算符
逻辑运算符是对真和假这两种逻辑值进行运算,运算后的结果仍是一个逻辑值。逻辑运算符包括&&(逻辑与)、||(逻辑或)、!(逻辑非)。逻辑运算符计算的值必须是boolean型数据。在逻辑运算符中,除了“!”是单目运算符之外,其他都是双目运算符。Java中的逻辑运算符如图所示:
注:
逻辑与:俩者都是真,结果才为真
逻辑或:只要一者为真,结果就为真
逻辑非:非真即假,非假即真
3.4.6 位运算符
位运算的操作数类型是整型,可以是有符号的也可以是无符号的。位运算符可以分为两大类:位逻辑运算符和位移运算符
1、“按位与”运算
& 俩者都为1,结果才是1
2、“按位或”运算
| 只要有一者为1,结果就是1
3、“按位取反”运算
~ 0变1,1变0
4、“按位异或”运算
^ 俩者相同即为0,不同为1
5、移位操作
位移运算符:
<< 左移:整体左移,空位补0,溢出去掉
>> 右移:整体右移,正数补0,负数补1,溢出去掉
>>> 无符号右移:整体右移,空位补0,溢出去掉
3.4.7 三元运算符
三元运算符的使用格式为:
返回值=判断公式?结果1:结果2;
条件式?值1:值2
三元运算符的运算规则为:若条件式的值为true,则整个表达式取值1,否则取值2。例如:
boolean b=20<45?true:false;
3.4.8 运算符优先级
如果两个运算有相同的优先级,那么左边的表达式要比右边的表达式先被处理。
3.5 数据类型转换
3.5.1 隐式类型转换
从低级类型向高级类型的转换,称为隐式转换,也可以称为自动转换。下列基本数据类型会涉及数据转换,不包括逻辑类型。这些类型按精度从“低”到“高”排列的顺序为byte<short<int<long<float<double。
注:自动类型转换一定不会丢失数据
3.5.2 显式类型转换
当把高精度的变量赋值给低精度的变量时,必须使用显示类型转换运算(又称强制类型转换),当执行显示类型转换时可能会导致精度损失。
注:强制类型转换有可能会丢失数据
3.6 代码注释与编码规范
3.6.1 代码注释
1、单行注释
"//"为单行注释标记,从符号"//"开始直到换行为止的所有内容均作为注释而被编译器忽略
2、多行注释
"/* */"为多行注释标记,符号"/*"与"*/"之间的所有内容均为注释内容,注释中的内容可以换行
3、文档注释
"/** */"为文档注释标记。符号"/**"与"*/"之间的内容均为文档注释内容。