当前位置:网站首页 > Java基础 > 正文

java常量基础



肆——Java最常用的编程元素:常量与变量

一、常量

一般来说,所有的程序设计语言都需要定义常量(Constant)。所谓常量,就是固定不变的量,其一旦被定义并赋初值后,它的值就不能再被改变。

1.声明常量

在Java语言中,主要是利用关键字final来进行定义常量的,声明常量的语法为:

final 数据类型 常量名称 [=值];

常量名称通常使用大写字母,但不是硬性要求,仅仅是编码习惯。值得注意的是,虽然Java中有关键字const,但目前并没有被Java正式启用。const是C++中定义常量的关键字。

常量标识符和变量标识符规定一样,可由任意顺序的大小写字母、数字、下划线( _ )和美元符号( $ )等组成,标识符不能以数字开头,也不能是Java中的保留关键字。

此外,在定义常量时,需注意如下两点:

(1)必须要在常量声明时对其进行初始化,否则会出现编译错误。常量一旦初始化后,就无法再次对这个常量进行赋值。

(2)final 关键字不仅可以用来修饰基本数据类型的常量,还可以用来修饰 “ 对象引用 ” 或者方法。

2.常量示例(加粗字体为定义常量)

行数

代码

static final int HOUR = 24;//定义一个静态常量

注意:static final int HOUR = 24;

这句中的static是Java的关键字。只有加了static才能被main函数引用。

变量是利用声明的方式,将内存中的某个内存块保留下来以供程序使用,其内的值是可变的。

可声明的变量数据类型有整型(int)、字符型(char)、浮点型(float或double),

也可以是其他的数据类型(如自定义的数据类型——类)。

在英语中,数据类型的“type”和类的“class”本身就是一组同义词,所以二者在地位上是对等的。

1.声明变量

声明变量有两个作用。

(1)指定在内存中分配空间大小。

变量在声明时,可以同时给予初始化(即赋予初始值)。

(2)规定这个变量所能接受的运算。

例如:整数数据类型int只能接受加、减、乘、除(+,-,*,/)等运算符。

其实在本质上,“类”就是在诸如整型、浮点型等基本数据“不够用”时,用户自定义的一种数据类型(User—Difined Type,UDT)。正是有了类型的区分,各个不同类型的变量就可以根据其类型所规定的操作范围“各司其职”。

因此,任何一个变量在声明时必须给予它一个类型,而在相同的作用范围内,变量还必须有个独一无二的名称。

注意:变量的值永远以最后更新的值为准。

扩展:

声明一个变量时,编译程序会在内存里开辟一块足以容纳此变量的内存空间给它。不管该变量的值如何改变,都永远使用相同的内存空间。常量是不同于变量的一种类型,它的值是固定的,通常给变量赋值时,会将常量赋值给变量。

2.变量的命名规则

变量也是一种标识符,所以它也遵循标识符的命名规则。

规则如下:

命名规则

3.变量的作用范围

变量是有作用范围(Scope)的,作用范围有时也称作用域。

一旦超出变量的作用范围,就无法再使用这个变量。

变量分为成员变量和局部变量。

(1)成员变量(加粗字体为定义的成员变量)

col>

col>

行号

代码

static int num = 1; //定义一个成员变量

行号

代码

for(int i = 0; i<=10; i++)

int num = 0;

C/C++语法允许作用域嵌套

Java语法不允许作用域嵌套

Fun()


Fun()


{


{


int num = 1;


int num = 1;


{


{


int num = 2;


int num = 2;


//正确输出num = 2,内嵌套的局部变量优先


  //编译错误:和{ }外的变量num的作用域重叠


cout<<" i= "<<i<<endl;


System.out.println(" i= " + i);


}


}


}


}


行号

代码

01

br>

02

br>

03

br>

04

br>

05

br>

06

br>

07

br>

08

br>

09

br>

第05行所定义的 x ,作为类 Test 的数据成员,它的作用域是整个类,即从第 02 行到第 08 行之间,这个范围包括了第 03 行到第 07 行,而这个区域内的 main 方法,其内部也定义了一个名为 x 的变量,在这个范围内,第 08 行定义的变量 x 被第 05 行定义的变量 x 所覆盖。

四、本文自我总结

版权声明


相关文章:

  • java前端的基础2025-04-02 09:10:03
  • java基础班题目2025-04-02 09:10:03
  • java基础数据类别2025-04-02 09:10:03
  • java基础开发小结2025-04-02 09:10:03
  • java基础学习路线2025-04-02 09:10:03
  • 零基础可以学习java吗2025-04-02 09:10:03
  • java基础教程电子书2025-04-02 09:10:03
  • java基础创建对象2025-04-02 09:10:03
  • java调优基础2025-04-02 09:10:03
  • java基础流程图解2025-04-02 09:10:03