浏览 1410 次
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2010-04-10
最后修改:2010-04-11
在C、C++和Java中,作用域由花括号的位置决定的。例如: { int x = 12; //Only x available { int q = 96; //Both x & q available } //Only x available //q is “out of scope” } 在作用域里定义的变量只可用于作用域结束之前。 尽管一下代码在C和C++中合法的,但是在Java中却不能这样书写: { int x = 12; { int x = 96; //illegal } } 编译器将会报告变量x已经定义过。 所以,在C和C++里讲一个较大作用域的变量“隐藏”起来的做法,在Java里是不允许的。 基本成员的默认值 若类的某个成员(属于类的字段)是基本数据类型,即使没有进行初始化,Java也会确保它获得一个默认值, 基本类型 默认值 Boolean false Char ‘\u0000’(null) Byte (byte)0 Short (short)0 Int 0 Long 0L Float 0.0f Double 0.0d 当变量作为类的成员变量使用时,Java才确保给定其默认值,以确保那些是基本类型的成员变量得到初始化(C++没有此功能),防止产生程序错误。但是,这些初始值对你的程序来说,可能是不正确的,甚至是不合法的。所以最好明确地对变量进行初始化。 然而上述确保初始化的方法并不适合于“局部”变量(即并非某个类的字段),因此,如果再某个方法定义中有 int x; 那么变量x得到的可能是任意值(与C和C++中一样),而不会被自动初始化为零。所以在使用x前,应先对其赋一个适当的值。如果忘记了这么做,Java会在编译时返回一个错误,告诉你此变量没有初始化,这正是Java优于C++的地方。(许多C++编译器会对未初始化变量给予警告,而Java则视为错误)。 您的帖子:[基础知识] C/C++ 与 Java 区别 被JavaEye用户投票评为新手帖帖,积分-10分。"小聪明"被识破. 嘿嘿.. 此贴确实够新手的. O(∩_∩)O哈哈~ 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |