本帖最后由 shimachao 于 2014-03-12 15:26:52 编辑

解决方案 »

  1.   

    第一个个人认为没有本质的区别,但是在Java领域都是这么写,那么尽量适应吧
    第二个,Java里面也可以分文件,就是Java里的interface
    第三个,和C里的,goto一样,你可以不用..
      

  2.   

    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
      

  3.   

    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有本质的区别,一个是静态的,另一个是动态的。
      

  4.   

    楼主明显是C++过来的,java的风格都是这样的,习惯就好了.
      

  5.   

    典型c语言转java不适应,适应就好了
      

  6.   

    习惯第一种用eclipse格式一下就好了,我习惯第二种,格式化一下也成了第一种。。所以我在慢慢改回第一种。
      

  7.   

    我到时感觉这个很爽的,但是学了C,然后用eclipse过后,在到VC里面写C程序,感觉大括号就不习惯了。人有所好吧
      

  8.   

    1:那样你的代码会少很多行 看起来更加简洁 至于你说的不好确定一个语句块 我真没看出来为什么不好确认。
    2::java中也有接口跟实现类的写法
    3:匿名内部类用的很少,一般不会用,特殊情况才用
      

  9.   

    那你要看到Ruby和Go的语法,还怎么活?
      

  10.   

    编程空余时间可以看看Java Code Conventions,然后就明白了。
      

  11.   

    第一条没什么说的,我见过怎么写的都有,跟语言没关系。我自己写C++的话也是和你说的Java一个写法。自己看着顺眼,公司允许就OK第二条,C++这么做不是因为代码风格,而是它的规范使得它不得不这么做。在你的函数体引用一个函数的时候,它的定义首先要存在。所以C++只能把类定义单独写出来,你的所以函数实现中才可以引用它。第二个原因,制作动态链接库(DLL,so之类)的时候,必须有一个头文件让编译器找到相关函数的定义,再在库中寻找接入点,Java中函数实现可以直接引用还没有定义的函数(当然在后面有定义),包括静态函数。Java的Jar包(相当于库)自带了所有的索引信息,即函数定义,所以Java不需要头文件。事实上你觉得有头文件不繁琐么?Java有各种强大的编译器,你想只看函数定义的话,最多按一个组合键就行了,有些甚至直接摆在编辑窗口旁边你点谁就看谁。第三条,匿名类是Java8之前Java仅有的类似函数式编程的语言特性(lambda的模拟),C++根本没这个功能(至少我学的时候还没有)。如果你觉得这种形式看着晕,一是因为你还没有适应,二是因为你看的代码没写好。
      

  12.   

    在eclipse里面可以改为第二种格式的,需要设置代码风格