2、最常用的编程元素—常量与变量
2.1 声明常量
final
关键字不仅可用来修饰基本数据类型的常量,还可以用来修饰“对象引用”或者方法。区别于C++中的const
。
public class Test2 {
// 定义一个静态常量。
static final int YEAR = 365;
public static void main(String[] args){
System.out.println("一年是:" + YEAR + "天。");
}
}
/*
一年是:365天。
*/
2.2 声明变量
Java中的变量声明,
public class Test2 {
static final int YEAR = 365;
public static void main(String[] args){
int num = 3;
char ch = 'z';
System.out.println("整数是:" + num);
System.out.println("字符是:" + ch);
}
}
/*
整数是:3
字符是:z
*/
Java中定义变量和C++中的区别:
(1)Java中作用范围是禁止嵌套的,而在C/C++中则是允许的。如在方法的开始处定义了一个变量i
,那么直到该方法结束处,都不能再定义另一个同名变量i
。如果在一个for
循环体中定义了变量i
,那么在这个for
循环内不能再有同名变量,但出了for
循环之后,是可以再次定义的。
正确的,没有问题:
public class Test2 {
public static void main(String[] args){
for(int i = 3; i < 10; i++){
}
int i = 2; // 在for循环的外面定义没有问题
}
}
错误的,会报错:
public class Test2 {
public static void main(String[] args){
int i = 2;
for(int i = 3; i < 10; i++){ // for循环前面已经有i变量了再定义就会报错
}
}
}
(2)Java中类与方法中变量作用域可以嵌套。在Java中,类与方法之间作用域是可以嵌套的,可以把整个类看做一个大的作用域,它定义的字段(或称数据成员)可被方法中的同名字段所屏蔽,其行为类似于上表左侧所示的C/C++的作用域嵌套。
3、Java中的数据类型
在Java之中数据类型一共分为两大类:基本数据类型、引用数据类型。目前先只讨论基本数据类型。Java中的8中数据类型如下图示:
整数类型的使用:
import java.util.jar.JarEntry;
public class Test3 {
public static void main(String [] args){
byte byte_max = Byte.MAX_VALUE;
System.out.println("byte的最大值是:" + byte_max);
short short_max = Short.MAX_VALUE;
System.out.println("short的最大值是:" + short_max);
int int_max = Integer.MAX_VALUE;
System.out.println("int类型的最大值是:" + int_max);
long long_max = Long.MAX_VALUE;
System.out.println("long类型的最大值是:" + long_max);
}
}
/*
byte的最大值是:127
short的最大值是:32767
int类型的最大值是:2147483647
long类型的最大值是:9223372036854775807
*/
float
类型的使用,需要在数字后面加上f
:
public class Test3 {
public static void main(String [] args){
float f = 1.2f;
System.out.println("浮点型:" + f);
}
}
// 浮点型:1.2
float和double类型的数值范围:
import java.awt.geom.RoundRectangle2D;
import java.util.zip.DeflaterOutputStream;
public class Test3 {
public static void main(String [] args){
float f = 1.2f;
System.out.println("浮点型:" + f);
float f_max = Float.MAX_VALUE;
float f_min = Float.MIN_VALUE;
double d_max = Double.MAX_VALUE;
double d_min = Double.MIN_VALUE;
System.out.println("浮点数的最大值和最小值是:" + f_max + " " + f_min);
System.out.println("double类型的最大值和最小值是:" + d_max + " " + d_min);
}
}
/*
浮点型:1.2
浮点数的最大值和最小值是:3.4028235E38 1.4E-45
double类型的最大值和最小值是:1.7976931348623157E308 4.9E-324
*/
其他需知:
C/C++语言和Java语言在布尔类型上存在显著差别:C/C++遵循的规则是 “非零即为真”,即所有不是零的数,都可认为是“true”,而仅把0当作false。而Java语言的布尔类型变量,其赋值只能是true(真)和false(假)两种。除此之外,没有其他的值可以赋值给布尔变量。也不能用1和0分别代替true(真)和false(假)。一言蔽之,Java语言中的布尔类型与整型无关。