Java代码的风格为什么这么“糟糕”? 本帖最后由 shimachao 于 2014-03-12 15:26:52 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 第一个个人认为没有本质的区别,但是在Java领域都是这么写,那么尽量适应吧第二个,Java里面也可以分文件,就是Java里的interface第三个,和C里的,goto一样,你可以不用.. 1、要找第3行结束的块的开始,找到的就是1,但是找第8行结束的块的开始,就有5和6两行。(这是很蛋疼的理由,实际上和楼上各位的解释差不多,有规定按规定,没规定按常理,没常理...自己爽就行了) 2、c++我不太懂,不过,C++即便是分开定义,那么定义实际的类的时候,也要有个名字吧?比如一个定义里写了abc方法public void abc();,那么实际内容的文件里,还是要写public void abc(){xxxx}那么,这个public void abc()字符串就在多个地方(至少是2个文件里)定义,反而会增加出错的概率吧?C++我不太...根本就不懂,大家讨论讨论另外,3楼朋友说的java里的接口(interface),虽然形式上看起来和你所了解的"C++提倡的把类的定义和实现放在不同文件中"一致,但是,接口还有着另外的作用,比如“定义和约束行为”等作用。这方面LZ多接触接触底层库的代码就有感觉了3、实际上这个匿名类就不是为了实现“有点大”的类。如果要实现一个“有点大”的类,就不要用匿名类,直接定义个单独的类,然后把需要操作的“宿主”的对象传递给这个单独的类就行。对于这个,概念上类似jsp和servlet的感觉简单的处理,可以放在jsp里完成复杂的处理(相对的就是lz说的“有点大”的类)就不要放在jsp里了,而是要把处理的代码放到servlet里处理大概其就是我的理解吧欢迎拍砖good luck C++里的内联函数和模板也需要和类一起放在头文件里呢?这样就清晰了吗?至于花括号放在同一行还是下一行得看自己习惯吧,放在同一行的优势是可以使代码更紧凑。匿名类可以在创建的时候同时继承一个类,这样就可以用于实现像C++里回调的作用(Callback),比如Button可以添加一个ActionListener来相应操作,如果这个操作比较简单那么直接new一个匿名类实现actionPerformed方法就行了,而不必重新定义这个ActionListener的子类。这里ActionListener接口中只有一个方法,在Java 8里还可以使用Lambda表达式(http://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html),匿名类则可以用于一个接口或类中有2个或多个方法的时候。顺便说下C++和Java有本质的区别,一个是静态的,另一个是动态的。 楼主明显是C++过来的,java的风格都是这样的,习惯就好了. 典型c语言转java不适应,适应就好了 习惯第一种用eclipse格式一下就好了,我习惯第二种,格式化一下也成了第一种。。所以我在慢慢改回第一种。 我到时感觉这个很爽的,但是学了C,然后用eclipse过后,在到VC里面写C程序,感觉大括号就不习惯了。人有所好吧 1:那样你的代码会少很多行 看起来更加简洁 至于你说的不好确定一个语句块 我真没看出来为什么不好确认。2::java中也有接口跟实现类的写法3:匿名内部类用的很少,一般不会用,特殊情况才用 那你要看到Ruby和Go的语法,还怎么活? 编程空余时间可以看看Java Code Conventions,然后就明白了。 第一条没什么说的,我见过怎么写的都有,跟语言没关系。我自己写C++的话也是和你说的Java一个写法。自己看着顺眼,公司允许就OK第二条,C++这么做不是因为代码风格,而是它的规范使得它不得不这么做。在你的函数体引用一个函数的时候,它的定义首先要存在。所以C++只能把类定义单独写出来,你的所以函数实现中才可以引用它。第二个原因,制作动态链接库(DLL,so之类)的时候,必须有一个头文件让编译器找到相关函数的定义,再在库中寻找接入点,Java中函数实现可以直接引用还没有定义的函数(当然在后面有定义),包括静态函数。Java的Jar包(相当于库)自带了所有的索引信息,即函数定义,所以Java不需要头文件。事实上你觉得有头文件不繁琐么?Java有各种强大的编译器,你想只看函数定义的话,最多按一个组合键就行了,有些甚至直接摆在编辑窗口旁边你点谁就看谁。第三条,匿名类是Java8之前Java仅有的类似函数式编程的语言特性(lambda的模拟),C++根本没这个功能(至少我学的时候还没有)。如果你觉得这种形式看着晕,一是因为你还没有适应,二是因为你看的代码没写好。 在eclipse里面可以改为第二种格式的,需要设置代码风格 问个Swing 皮肤的问题 检测list内有几组相同元素 打包后,JAR文件内资源相对路径出错的问题 java applet 中 url连接servlet的问题 如何实现点击一个窗口的按钮,弹出一个已有的另一个窗口啊? java写的判断是否是素数的程序,请大家看一下,哪里有bug 高分求编译java.exe的源码?1.4版本以上的。 =====请问网络编程中怎样传输一个类?===== 客户端连接oracle服务器!! 初学者救助? linux系统 32位 64位 jdk1.6 下载 一年半javaweb开发经验,现在想恶补java基础,求推荐书籍,讲的比较深的
第二个,Java里面也可以分文件,就是Java里的interface
第三个,和C里的,goto一样,你可以不用..
(这是很蛋疼的理由,实际上和楼上各位的解释差不多,
有规定按规定,没规定按常理,没常理...自己爽就行了) 2、c++我不太懂,不过,C++即便是分开定义,那么定义实际的类的时候,也要有个名字吧?
比如一个定义里写了abc方法
public void abc();
,那么实际内容的文件里,还是要写
public void abc(){
xxxx
}
那么,这个public void abc()字符串就在多个地方(至少是2个文件里)定义,
反而会增加出错的概率吧?C++我不太...根本就不懂,大家讨论讨论另外,3楼朋友说的java里的接口(interface),
虽然形式上看起来和你所了解的"C++提倡的把类的定义和实现放在不同文件中"一致,
但是,接口还有着另外的作用,
比如“定义和约束行为”等作用。
这方面LZ多接触接触底层库的代码就有感觉了3、实际上这个匿名类就不是为了实现“有点大”的类。
如果要实现一个“有点大”的类,
就不要用匿名类,直接定义个单独的类,
然后把需要操作的“宿主”的对象传递给这个单独的类就行。对于这个,概念上类似jsp和servlet的感觉
简单的处理,可以放在jsp里完成
复杂的处理(相对的就是lz说的“有点大”的类)就不要放在jsp里了,
而是要把处理的代码放到servlet里处理大概其就是我的理解吧欢迎拍砖good luck
2::java中也有接口跟实现类的写法
3:匿名内部类用的很少,一般不会用,特殊情况才用