第二章 Java基本程序结构
2.1 java程序的构成
2.1.1 标识符
Java中,标识符是以字母、下划线(_)或美元符号($)开始,后面可以跟字母、下划线、美元符号和数字的一个字符序列。
如:userName,_sys_val,name,$change;但是2mail,room#是非法的标识符。
注:标识符中的字符是区分大小写的。
2.1.2 关键字
关键字是特殊的标识符,不能当作用户的标识符使用。Java语言中的保留字均用小写字母表示。Java语言中的保留字:abstract、break、byte、boolean、catch、case、class、char等等。
2.1.3 注释
1. 程序注释
(1)以双斜杠(//)开始
以“//”开始后跟注释文字,这种注释方式可单独占一行,也可放在程序语句的后面。
例:int id; //定义一个整型变量id,表示标识号码
(2)以“/*”开始,以“*/”结束
需要多行注释时,一般使用“/*...*/”格式做注释,中间为注释内容。
例:/*
*setName(String) ---设置名字方法
*getName() ---获取名字方法
*/
2. 程序文档注释
程序文档注释是java特有的注释方式,它规定了一些专门的标记,目的是自动生成独立的程序文档。
程序文档注释常用于注释类、接口、变量和方法。
例
/**
*@author unascribed 说明程序代码的作者
*@version 1.50,02/02/06 说明程序代码的版本及推出时间
2.2 数据类型
Java语言的数据类型分为基本数据类型和引用数据类型。
数据类型:基本数据类型、引用数据类型;
↓ ↓
整数类型、字符类型 类、接口、数组、字符串
布尔类型、浮点类型
其中 整数类型分为:字节型、短整型、整型、长整型;
浮点类型分为:单精度浮点型、双精度浮点型;
所占二进制位 所占字节
byte 8 1
short 16 2
int 32 4
long 64 8
char 16 2
boolean 8 1
float 32 4
double 64 8
2.3 变量
2.3.1 变量的定义
1. 变量定义
变量是程序中的基本存储单元,在程序运行过程中可以随时改变其存储单元的值。
变量的一般定义如下:
数据类型 变量名[=value] [,变量名[=value...];
其中,数据类型表示后面定义变量的数据类型;变量名是一个标识符,遵循标识符的命名规则;可以在说明变量的同时为变量赋初值;
如:int n1=456,n2=687;
double d1=2145.2;
2. 变量的作用域
变量的作用域指变量自定义的地方起,可以使用的有效范围。在程序中不同的地方定义的变量具有不同的作用域。一般情况下,在本程序块(即以{ }括起的程序段)内定义的变量在本程序块内有效。
2.3.2 变量类型
常量:程序运行过程中保持不变的量,即不能被程序改变的量,也称为最终量。
常量分为:标识常量、直接常量。
(1)标识常量:
格式:final 数据类型 常量名=value[,常量名=value...];
如:final double PI=3.1415926; //定义了标识常量PI,值为3.1415926。
(2)直接常量:
21,45 表示整型量;
12L,123l 尾部加大写字母L或小写字母l表示该量是长整型量;
45.2567F,54678.2f 尾部加大写字母F或小写字母f表示该量是单精度浮点型量;
1. 整型
(1)整型常量的表示方法
一般情况下用十进制表示,如123,-456,0,23456。
(2)整型变量的定义
如:int x=123; //指定变量x为int型,赋初值为123
long y=123L,z=123l; //指定变量y,z为long型,分别赋初值为123
2. 字符型(char)
字符型数据占两个字节、16个二进制位,用单引号括起来:
如:’A’,’a’
字符型变量的定义,如char c=’a’; //指定变量c为char型,且赋值为’a’
3. 布尔型(boolean)
布尔型数据的值只有2个:true和false;
如:boolean b1=true,b2=false; //定义布尔变量b1,b2并分别赋予真值和假值。
4. 浮点型(实型)
两种浮点型数据:单精度、双精度;
(1)实型常量的表示方法
实型常量0.123,1.23,123.0表示双精度数;
123.4f,145.67F,0.64321f表示单精度数。
(2)实型变量的定义
如:
float x=123.5f,y=1.23e8f; //定义单精度变量x,y分别赋予123.5、1.23×10^8的值。
数据类型 | 对应的类 |
boolean | Boolean |
byte | Byte |
char | Character |
int | Integer |
long | Long |
float | Float |
double | Double |
2.3.3 初始化变量
注:在类体中定义的成员变量,若定义后未赋初值,系统会自动对其进行初始化,各种类型的默认初始值:
byte型默认值0;
short型默认值0;
int型默认值0;
long型默认值0l;
float型默认值0.0f;
double型默认值0.0d;
char型默认值/u0000(即数值0,而非字符0,因为它是0~65535的序列);
boolean型默认值false。
2.4 运算符与表达式
2.4.1 算术运算符
+(加),-(减),*(乘),/(除),%(求余),++(自加1),--(自减1)
2.4.2 关系运算符
>(大于),<(小于),>=(大于等于),<=(小于等于),==(等于),!=(不等于)
如:x=90,y=78,表达式x>y产生true值;表达式x==y产生false值。
2.4.3 逻辑运算符
1. !(逻辑非)
运算形式:!A;
A是布尔逻辑或关系表达式。
如:x=90,y=80,则表达式!(x>y)的值为false。
2. &&(逻辑与)
运算形式:A&&B;
A、B是布尔逻辑或关系表达式。
若A和B的值均为true,则A&&B的值为true,否则为false;
3. ||(逻辑或)
运算形式:A||B
A、B是布尔逻辑或关系表达式。
A和B的值只要有一个为true,则A||B的值为true。
2.4.4 赋值运算符
用于把一个表达式的值赋给一个变量(或对象);
如:x*=x+y; 相当于x=x*(x+y)
y&=z; 相当于y=y&z
y>>=2; 相当于y=y>>2
注:>>是右移的意思。
2.4.5 字符串运算符
若表达式以一个String起头,那么后续所有运算对象都必须是字符串;
如:
int x=0,y=1,z=2;
String sString=”x,y,z”;
System.out.println(sString+x+y+z);
输出结果为:x,y,z 012
2.4.6 其他运算符
1. 对象运算符
构造对象(new)
New运算符主要用于构造类的对象;
2. 分量运算符(.)
运算符主要用于获取类、对象的属性和方法。
如:System.out.println(“my first Java program”);
3. 对象测试(instanceof)
Instanceof运算符主要用于对象的测试。
4. 数组下标运算符([ ])
用于数组
5.强制类型转换运算符((类型))
高类型的数据向低类型的数据转换时,需要强制转换。
6. ()运算符
()运算符用在运算表达式中,改变运算的优先次序。
2.4.7 运算符的优先级和结合性
算术运算符的结合方向为“自左向右”,即先左后右,也有一些运算符的结合性是“自右向左”的。
2.4.8 java运算符的优先级和结合性
1. java运算符的优先级
2. 类型转换
一般情况下,系统自动将两个运算数中低级的运算数转换为和另一个较高级运算数的类型相一致的数,再进行运算。
类型从低级到高级:byte →short,char →int →long →float →double
注:将高类型数据转换成低类型数据,需要强制类型转换,这可能导致数据溢出或精度下降。
2.5 流程控制语句
2.5.1 选择语句
1. if 条件分支语句
格式1:
If (布尔表达式)语句;
格式2:
If (布尔表达式)语句1;
else 语句2;
格式3:
If (布尔表达式1) 语句1;
else if(布尔表达式2) 语句2;
.
.
else if(布尔表达式n-1) 语句n-1;
else 语句n;
2. switch条件语句
break关键字的作用是结束本switch结构语句的执行,跳到该结构外的下一个语句执行。
2.5.2 循环语句
1. for语句
格式:
for(表达式1;表达式2;表达式3)
{
语句组; //循坏体
}
2. while 循环语句
格式:
while(布尔表达式)
{
语句组; //循坏体
}
3. do-while 循环
格式:
do
{
语句组; //循坏体
}while(布尔表达式);