参考书籍
变量与命名常量
标识符
在计算机编程语言中,标识符是用户编程时使用的名字,用于给变量、常量、函数、语句块等命名,以建立起名称与使用之间的关系。
标识符命名规则
- 标识符是由字母,数字,下划线(_)和美元符号($)构成的字符序列。
- 标识符必须以字母,下划线(_)或美元符号($)开头,不能以数字开头。
- 标识符不能是保留字。
- 标识符不能是true,false或null。
- 标识符可以为任意长度。
变量
变量是用于存储程序中后面要用的值,它们被称为变量是因为它们的值可以改变。
基本语法: datatype variableName
// 变量命名示例
int i,j,k;
int count=1;
//相当于
//int count ;
//count=1;
int a=1,b,m=2;
命名常量
变量的值在程序执行过程中可能会发生变化,但是命名常量表示从不改变的数据。
基本语法:final datatype CONSTANTNANME = value;
习惯上,常量中的所有字母都大写。
常量必须在同一条语句中声明和赋值。
//示例
final double PI = 3.1415926;
使用常量的三个好处:
- 当一个值多次使用时,不必重复输入。
- 如果必修修改常量值,只需在源代码中一个地方改动。
- 给常量赋值一个描述性名字会提高程序易读程度。
命名习惯
- 使用小写字母命名变量和方法。例如:变量numberOfStudent(驼峰命名法)
- 类名中的每个单词的首字母大写。例如:类名ComputerArea和System。
- 常量中所有字母大写,两个单词用下划线连接。例如:常量PI和常量MAX_VALUE。
操作符
数值操作符
运算符 | 名字 | 示例 | 运算结果 |
---|---|---|---|
+ | 加 | 34+1 | 35 |
- | 减 | 34.0-0.1 | 33.9 |
* | 乘法 | 300*3 | 900 |
/ | 除 | 1.0/2.0 | 0.5 |
% | 求余 | 20%3 | 2 |
自增和自减操作符
操作符 | 名称 | 描述 | 示例(假设i=1) |
---|---|---|---|
++var | 前置自增 | 将var加1,在语句中使用新的var值。 | int j= ++i;//j is 2,i is 2 |
var++ | 后置自增 | 将var加1,但在语句中使用旧的var值。 | int j= i++;//j is 1,i is 2 |
–var | 前置自减 | 将var减1,在语句中使用新的var值。 | int j= --i;//j is 0,i is 0 |
var– | 后置自减 | 将var减1,在语句中使用旧的var值。 | int j= i–;//j is 1,i is 0 |
数值类型转换
在Java语言中两个不同类型的操作数可以进行二元运算。如果在一个二元运算中,其中一个操作数是整数,而另一个操作数为浮点数,Java会自动将整数转换为浮点数。固,3/4.5等同于3.0/4.5。
总是可以将一个数值赋值给支持更大数值范围的类型的变量。但是,如果不进行类型转换,就不能将一个赋值给范围较小的类型的变量。
类型转换是将一种数据类型的值转换成另一种数据类型的值的操作。
将范围较小的类型转换为较大的类型称为扩展类型。
将范围较大的类型转换为较小的类型称为缩小类型。
缩小类型必须显式完成
类型转换的语法要求将目标类型放在括号里,紧跟其后的是要转换的变量名或值。
System.out.println((int)1.7);
//显示结果为1.当double类型转换为int类型时,小数部分被截去。
System.out.println((double)1/2);
//显示结果为0.5,1首先被转换为1.0
System.out.println(1/2);
//显示结果为0,因为1,2都为整数,结果也为整数。
注意:类型转换不改变被转换变量。
double d=4.5;
int i=(int)d;
//i becomes 4,but d is still 4.5
注意:java中,类似 x1+=x2形式的增强赋值表达式实现为x1=(T)(x1 = x2),这里T是x1的类型。因此,下面代码是正确的
int sum=0;
sum+=4.5;
//等价于sum=(int)(sum+4.5)
示例:显示当前时间
public class ShowCurrentTime {
public static void main(String[] args) {
// Obtain the total milliseconds since midnight, Jan 1, 1970
long totalMilliseconds = System.currentTimeMillis();
// Obtain the total seconds since midnight, Jan 1, 1970
long totalSeconds = totalMilliseconds / 1000;
// Compute the current second in the minute in the hour
long currentSecond = totalSeconds % 60;
// Obtain the total minutes
long totalMinutes = totalSeconds / 60;
// Compute the current minute in the hour
long currentMinute = totalMinutes % 60;
// Obtain the total hours
long totalHours = totalMinutes / 60;
// Compute the current hour
long currentHour = totalHours % 24;
// Display results
System.out.println("Current time is " + currentHour + ":"
+ currentMinute + ":" + currentSecond + " GMT");
}
}
结果示例
Current time is 17:31:8 GMT
本示例是开发一个以GMT(格林威治标准时间)来显示当前时间的程序:
调用System.currentTimeMillis()方法获取1970年1月1日午夜到现在的毫秒数。
思考如何精准计算到当前时间。
下期公布