| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 667 人关注过本帖
标题:[原创]细数java七宗罪
只看楼主 加入收藏
过儿2005
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2005-10-8
收藏
 问题点数:0 回复次数:3 
[原创]细数java七宗罪
七 将main置入类内,莫名其妙的结构,常令初学者感到困惑。
六 语句死板冗繁化。如类内每个成员函数皆要写上public属性,而写main则要加上四重修饰,其死板冗繁可见一斑。
五 运算符重载的缺失。
四 没有指针。作为标榜其语言优越性的没有指针,其实反为其语言的一大缺陷,令到如简单的动态数组的创建也要用其它方法弥补之。
三 杂沓的类型转换语句。有的类型转换常常出现可几种方法达到同样效果的情况,学习时总令人不知所措。
二 强制捕捉异常。为安全牺牲灵活与简洁,不给程序员丝毫选择的空间。
一 罪恶之极:严重变态的输入输出流。学习其io 流你要花几倍于学其它部份的时间与精力,甚至未必凑效。往往跨过这道坎,你便打过了十八铜人阵,可以出山了。
搜索更多相关主题的帖子: java 
2005-10-08 11:03
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
[QUOTE]七 将main置入类内,莫名其妙的结构,常令初学者感到困惑。[/QUOTE]
Java 里必须有class, 所有的都以Object的形式出现,而main 函数也是一个方法,从属于某一类的Object,所以将main方法放在某个类里更能体现OOP

[QUOTE]六 语句死板冗繁化。如类内每个成员函数皆要写上public属性,而写main则要加上四重修饰,其死板冗繁可见一斑。[/QUOTE]
这样使得每个方法的属性更清楚些,也没什么不可。

[QUOTE]五 运算符重载的缺失。[/QUOTE]
就我认为C++中的符号重载也不是必须有不可,当然C++中提供了重载的可能,便使得程序员多了一份灵活性,但是这不是必须的,从一定意义上来讲,这是一种技巧,一种花架子而已,比如你可以写个 operator +(...) 我可以写个 plus(...)
所以,从本质上来讲没有多大的分歧。

[QUOTE]四 没有指针。作为标榜其语言优越性的没有指针,其实反为其语言的一大缺陷,令到如简单的动态数组的创建也要用其它方法弥补之。[/QUOTE]
从一定意义上来讲编程语言是为程序员而设定的,不是为张大妈,李大姐而设计的,当然张大妈,李大姐也可以去学一点编程的技术。我们看到,稍微写个小程序,没有什么多大的困难,那个HelloWorld的程序我想几乎人人会写,作为一个学生,写个小程序是很自然的事,但是即便是计算机系毕业的人,甚至是计算系的博士生,真正会写程序的真的不多,所以才显得编程这么神秘。如果你写个小程序还很费周折,那就很难想象你真的会编程。一个大的Project,超过100个,甚至1000个class都有可能。一般的学生,或者说,一般的代码员,最多搞个几十个class。给他一个大的Project的程序,估计他连东南西北都找不着。那么你就可以知道了,一个指针的错误所可能引起的程序错误是很大的,而且往往是致命的。程序编译成功,甚至程序运行成功都不表示程序100%的Robust。任何有经验的程序员都有可能犯错,更何况是面对一个庞大的Project,都出错了再去找,真的是找也找不着的。所以从这个意义上来讲,将指针抹去,是绝对明智的。

[QUOTE]三 杂沓的类型转换语句。有的类型转换常常出现可几种方法达到同样效果的情况,学习时总令人不知所措。[/QUOTE]
我不知你想表达什么,类型转换是很清楚的事。还要请注意,你所说的还是在Primary Type 比如 double 转换为 int
如果在Object 层面就不是随意可以转换的。除非他们之间有继承的关系。

[QUOTE]二 强制捕捉异常。为安全牺牲灵活与简洁,不给程序员丝毫选择的空间。[/QUOTE]
安区是第一位的,否则,Java 不可能成为网络语言,那么java 的生命力就没有了。

[QUOTE]一 罪恶之极:严重变态的输入输出流。学习其io 流你要花几倍于学其它部份的时间与精力,甚至未必凑效。往往跨过这道坎,你便打过了十八铜人阵,可以出山了。[/QUOTE]
这一点我倒是可以认同你,他完全可以将IO更抽象一点,比如 cout 取代 System.out.print
那个文件输入就更麻烦了,这一点,Sun应该考虑向C++ 的IO 学习。

补充说明一点,Sun不搞JSDN是让我很不满意的一点。而Microsoft 搞了MSDN 给C++程序员提供了很大的帮助.
但是Microsoft 也有做的不足的方面,那就是Microsoft 缺少一个很好的论坛, 而Sun 有他一个很好的论坛.
我一般有问题都去Sun的那个论坛.

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2005-10-08 13:35
tempnetbar
Rank: 2
等 级:新手上路
威 望:4
帖 子:582
专家分:4
注 册:2004-5-5
收藏
得分:0 
做成那样就是为了封装嘛,你自己可以再封装一下,弄得简单点。cout,cin你不觉得不够面向对象么?简直就是printf和scanf的翻版,太面向过程了

相信勤能补拙! 喜欢用好用的就永远学不到有用的。
2005-10-08 22:01
过儿2005
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2005-10-8
收藏
得分:0 
回复:(kai)[QUOTE]七 将main置入类内,莫名其妙的结...
真诚感谢版主对我的观点的批注。读后令我自愧无地,其实是自己在深入学习过程中遇到困难时产生了一些情绪。不过写起程序来,我还是用C++比较顺手。
2005-10-08 23:19
快速回复:[原创]细数java七宗罪
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.035896 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved