JAVA中定义常量方法

(2013-01-28 14:30:19)

标签:

it

一、常量定义的基本注意事项。

在Java语言中,主要是利用final关键字(在Java类中灵活使用Static关键字)来定义常量。当常量被设定后,一般情况下就不允许再进行更改。如可以利用如下的形式来定义一个常量:final

double PI=3.1315。在定义这个常量时,需要注意如下内容:

一是常量在定义的时候,就需要对常量进行初始化。也就是说,必须要在常量声明时对其进行初始化。都跟局部变量或者成员变量不同。当在常量定义的

时候初始化过后,在应用程序中就无法再次对这个常量进行赋值。如果强行赋值的话,数据库会跳出错误信息,并拒绝接受这一个新的值。(接口中定义的常量的访问方法)

二是final关键字使用的范围。这个final关键字不仅可以用来修饰基本数据类型的常量,还可以用来修饰对象的引用或者方法。如数组就是一

个对象引用。为此可以使用final关键字来定义一个常量的数组。这就是Java语言中一个很大的特色。一旦一个数组对象被final关键字设置为常量数

组之后,它只能够恒定的指向一个数组对象,无法将其改变指向另外一个对象,也无法更改数组(有序数组的插入方法可使用的二分查找算法)中的值。

三是需要注意常量的命名规则。不同的语言,在定义变量或者常量的时候,都有自己一套编码规则。这主要是为了提高代码的共享程度与提高代码的易读

性。在Java语言中,定义常量的时候,也有自己的一套规则。如在给常量取名的时候,一般都用大写字符。在Java语言中,大小写字符是敏感的。之所以采

用大写字符,主要是跟变量进行区分。虽然说给常量取名时采用小写字符,也不会有语法上的错误。但是,为了在编写代码时能够一目了然的判断变量与常量,最好

还是能够将常量设置为大写字符。另外,在常量中,往往通过下划线来分隔不同的字符。而不想对象名或者类名那样,通过首字符大写的方式来进行分隔。这些规则

虽然不是强制性的规则,但是为了提高代码友好性,方便开发团队中的其他成员阅读,这些规则还是需要遵守的。没有规矩,不成方圆。

总之,Java开发人员需要注意,被定义为final的常量需要采用大写字母命名,并且中间最好使用下划线作为分隔符来进行连接多个单词。在定义final的数据不论是常量、对象引用还是数组,在主函数中都不可以改变。否则的话,会被编辑器拒绝并提示错误信息。

二、Final关键字与static关键字同时使用。

由于Javal是面向对象的语言,所以在定义常量的时候还有与其它编程语言不同的地方。如一段程序代码从编辑到最后执行,即使需要经过两个过程,分别为代码的装载与对象的建立。不同的过程对于常量的影响是不同的。现在假设有如下的代码:

Private static Random rd1=new Random(); //实例化一个随机数生成对象。

Private final int int1=rd1.nestInt(10); //生成随机数并赋值给常量int1

Private static final int int2=rd1.nestInt(10);

//生成随机数并赋值给常量int2

这上面的语句的大致含义是,通过Java语言提供的随机数类对象,生成随机数。并把生成的随机数赋值给常量int1与int2。细心的读者会发

现,虽然同样是赋值语句,但是以上两个语句中有一个细小的差别,即在第二条语句中多了一个关键字static。关于关键字的用途,笔者在以前的文章中也有

谈到过。这个是一个静态的概念。即当利用这个关键字来修饰一个变量的时候,在创建对象之前就会为这个变量在内存中创建一个存储空间。以后创建对对象如果需

要用到这个静态变量,那么就会共享这一个变量的存储空间。也就是说,在创建对象的时候,如果用到这个变量,那么系统不会为其再分配一个存储空间,而只是将

这个内存存储空间的地址赋值给他。如此做的好处就是可以让多个对象采用相同的初始变量。当需要改变多个对象中变量值的时候,只需要改变一次即可。从这个特

性上来说,其跟常量的作用比较类似。不过其并不能够取代常量的作用。

分享:

喜欢

0

赠金笔

加载中,请稍候......

评论加载中,请稍候...

发评论

登录名: 密码: 找回密码 注册记住登录状态

昵   称:

评论并转载此博文

发评论

以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

java定义常量_JAVA中定义常量方法相关推荐

  1. java中常量_Java中的常量有哪些?

    JAVA常量就是在程序中固定不变的值,是不能改变的数据.例如数字1.字符"a".浮点数3.2等.那么java的常量有哪些呢?在Java中,常量包括整型常量.浮点数常量.布尔常量.字 ...

  2. java finalize 作用_java中的finalize方法有什么作用

    java中的finalize方法是Object类中提供的一个方法,在GC准备释放对象所占用的内存空间之前,它将首先调用finalize()方法. finalize()方法是Object类中提供的一个方 ...

  3. java getbytes 长度_JAVA中的getBytes()方法

    在Java中,String的getBytes()方法是得到一个操作系统默认的编码格式的字节数组.这个表示在不同情况下,返回的东西不一样! String.getBytes(String decode)方 ...

  4. java compareto 中文_java中的compareto方法的详细介绍

    一.java中的compareto方法 1.返回参与比较的前后两个字符串的asc码的差值,如果两个字符串首字母不同,则该方法返回首字母的asc码的差值 String a1 = "a" ...

  5. java equals覆盖_java 中覆盖equals() 方法

    在java中覆盖 equals() 起因 这周软件构造实验中第三题需要判断自建类的相等性. 例如如下代码 class Person{ String name; public Person(String ...

  6. java arrays.aslist()_Java中Arrays.asList()方法详解及实例

    Arrays.asList() 是将数组作为列表. 问题来源于: public class Test { public static void main(String[] args) { int[] ...

  7. java中属于常量_java中的常量和属性

    Java最佳实践建议将属性作为常量读取.那么,您认为达到目标的最佳方法是什么?我的方法是:一个Configuration类只读取一次属性文件(单例模式),并使用此类在需要时读取属性作为常量.并存储一个 ...

  8. java字符截取_java中截取字符串方法

    Java 简介 substring public String substring(int beginIndex) 返回一个新的字符串,它是此字符串的一个子字符串.该子字符串始于指定索引处的字符,一直 ...

  9. java nanotime 重复_Java中System.nanoTime方法能作为一个唯一字符串来使用吗

    展开全部 一般使用 UUID 类来生成唯一的字符串e68a84e8a2ad62616964757a686964616f31333361313365package test; import java.u ...

最新文章

  1. head first python 第二版 中文版-Head First Python 中文版
  2. KVM的客户机可以使用的存储
  3. React setState流程解析
  4. linux和用户账户相关的系统文件
  5. windows 服务中托管asp.net core
  6. 【Swin Transformer Block】的整体流程如下:
  7. 里面怎么定义变量_小哥今天要给朋友们分享一下Java编程语言中的变量与常量的区别...
  8. 那年学过的web后端笔记
  9. 20190925:(经典算法系列)河内之塔
  10. 为资产分类定义折旧范围_固定资产分类标准及折旧方法5
  11. Numpy包简单介绍
  12. 定时任务发展史(二)
  13. iPhone清理喇叭灰尘_厉害了!原来可以这样一键清理 iPhone 喇叭灰尘!
  14. cf406E Hamming Triples (推公式)
  15. 国标GB28181协议国标视频平台国标流媒体服务器EasyGBS向上级联多个平台设备及通道选择错位问题解析
  16. 徐州2018年大学计算机比赛,2018年第四届徐州市中小学生学科综合能力大赛获奖名单!权威发布!【五年级】...
  17. python,matlab 读取NIFTI(.nii)格式图像、FSL安装
  18. Bluedroid 函数分析:bta_dm_gattc_register
  19. QStyleOption类型
  20. 单片机常用芯片系列(二)——DS18B20详解

热门文章

  1. 第12周 oj 进制转换
  2. 软件工程导论——6软件质量保证
  3. 如何跳过sourceTree登录
  4. java程序员找工作前需要准备的杀手锏有哪些?
  5. 【JVM 由浅入深】JVM入门
  6. 刘芳20153721--3
  7. 网络攻击与防御期末考试知识点
  8. 对停留在云计算概念层面已经腻了?请看《云计算》教材
  9. 自动化领域部分EI期刊及影响因子
  10. 智慧城市顶层设计范例:以数字家庭区块为例-P02