欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > java >内容正文

java

关于《Java编程思想》的简单纠正

发布时间:2025/3/15 java 26 豆豆
生活随笔 收集整理的这篇文章主要介绍了 关于《Java编程思想》的简单纠正 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

今天在看《Java编程思想》(我买的第四版,中文版)这本书的时候,在书第93页部分开头,有这么一段描述:

“5.6.1    指定初始化

    如果想为某个变量赋初值,该怎么做呢?有一种很直接的办法,就是在定义类成员变量的地方为其赋值(注意在C++里不能这么做,尽管C++的新手们总想这样做)。以下代码片段修改了InitialValues类成员变量的定义,直接提供了初值。“

原文是这么说的,请注意我划下划线的地方,这里的意思按我的理解是,在Java中可以在定义类成员变量的时候赋初值,但是在C++中却无法这么做,于是我将信将疑地做了个小测试。

#include<iostream> class test {int num = 5;double numbers = 1.5; public:void print(void){std::cout << num << std::endl;std::cout << numbers << std::endl;} };int main(void) {test te;te.print();return 0; }

我使用的是微软公司的Visual Studio 2017 社区版,在这个版本的编译器中,对于这种代码的书写是完全被接受的(编译过程甚至没有出现警告),结果十分明显,这个测试程序成功地输出了5和1.5这两个数字。

对于书中所述和实际的出入,我认为可能有以下原因:

1.本书的作者可能在写书的时候记错了

2.国内人员在翻译的时候出错(我没有本书的英文版)

3.作者写此书的时候,C++还停留在前面的几个版本,可能在旧的C++标准中并不允许类中初始化的行为,随着新标准的颁布,加入了这一语法。

4.我使用的编译器支持这类语法,但可能其他编译器不支持(正如我用C语言写代码的时候,Vs2017不支持变长数组(VLA),它将其视为错误,但在另一款编译器Dev C++中却完全支持)。

具体情况我也不清楚,如果有知情者知道的欢迎留言。



总结

以上是生活随笔为你收集整理的关于《Java编程思想》的简单纠正的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。