Java与C++语言在作用域上的差别浅析[Java编程]
本文“Java与C++语言在作用域上的差别浅析[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
Java与C++的编程思惟固然有一定的共同性,但是在很多方面仍旧存在着差别 .如二者在作用域上仍旧存在着很大的差别.下面笔者就解析一下这两门语言在 作用域上的差别,这里所提到的作用域包含变量作用域和对象作用域.
差别一:变量作用域的差别
以下面这段程序代码是符合C++语言的语法要求的.其可以在C语言下正常运 行.但是其在Java语言平台下编译的时刻,就会被奉告有错误.其格局、关键字 上面都没有错误.那么错误毕竟是这么呢?这就关系到变量的作用域.
{
float y=3.15
{
float y=3.15
}
}
作用域就决意了其定义的变量名的可见性与生命周期.在C++语言(包含其衍 生出来的其他语言)与Java语言中,都是用一定花括号来代表一个作用域的.如 上面的代码,就表示有两个作用域.表面一对花括号代表一级作用域;里面一对 花括号代表二级作用域,顺次类推.普通情形下,一级作用域中定义的变量,对 其下级作用率都是有效的.也就是说,其下级作用域可以直接引用上级作用域中 定义的变量.但是在二级作用域中,可以更改一级作用率中设置的变量值,不过 这个更改只在二级作用域内部有效.如上面这个代码,在二级作用域中可以再定 义一个y变量,重新赋值.注意,其实在二级作用域中定义的变量与一级作用域 中定义的变量,固然名字相同,但是他们不是同一个变量.假如此时在一级作用 域外,有其他代码引用这个y变量的话,则其的值仍旧是3.14,而不会是3.15. 也就是说,在二级作用域中定义的变量,只在其内部有效.关于上级作用域是没 有丝毫影响的.也就是说,在作用域中定义的变量只在其作用域内有效.出了其 作用域外,其内部设置的变量就全部无效了.
这个作用域的设置其实Java语言与C++语言是近似的.但是在细节上Java语言 又多了一条限制.如上表的代码所示,固然在上面的代码中变量y在两个差别的 作用域中定义,照理来说是二者是互不干与,可以共存.但是在Java编译器中, 是不答应有这种情形存在的.把上面这个代码在Java编译器中编译的话,编译器 会告诉程序开辟人员,说这个变量y已经定义过.然后编译会以错误告终.固然 在C++语言中在差别级别的作用域中定义名字相同的变量是答应的,而在Java语 言中则不行,这并不代表在变量的作用域上有所差别.其实从本质上来说,二者 变量的作用域是相同的.只是关于Java语言来说,其又多加了一条限制.在Java 语言中,即便作用域差别,其定义的变量名字也不可以相同.这主如果为了提高 Java代码的可读性,避免混合才定义了这条法则.
以上是“Java与C++语言在作用域上的差别浅析[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |