|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
手机用到的是用j2me所编出来的小程序。
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代码的可读性,避免搅浑才界说了这条划定规矩。
<p>
ruby里有这些工具吗?又要简单多少?我没有用过这两门语言,我估计在这些语言力没有很统一的这种标准,或者根本就没有提供。 |
|