zoukankan      html  css  js  c++  java
  • C++与Java语法比较

    1.关于作用域,
    如下代码:
    ///////////////////////////////////////////
    {
     int x = 125;
     {
      int x=34; //Illegal
     }
    }
    ////////////////////////////////////////////
    在c/c++中,这中写法是没有问题的,这叫作用域屏蔽(是这么叫吧?),但在java里这样写就是非法的,的确这是个很好的避免引起歧义的做法。

    2.java没有sizeof()

    3.java终于摒弃了goto,同时提供了另一个类似的功能
    的东东,以便能在适当的地方起些适当的作用。label.
    ///////////////////////////////
    label1:
    outer-iteration
    {
     inner-iteration
     {
      //......
      break; //案例1
      //......
      continue; //案例2
      //......
      continue label1; //案例3
      //......
      break label1; //案例4
      //......
     }
    }
    /////////////////////////////////
    在案例1中break中断了内部循环,退到了外部循环。案例2中continue仍在内部循环。案例3中continue到label1
    处,重新开始循环。案例4退到label1处,但是这次再不进入循环了(不可思议)。

    以上规则同样适用于while循环。

    4.如果Java的基类里有一个被重载了好几次的方法,那么在派生类里重新定义那个方法,是不会把基类里定义的任何一个给遮盖掉的(这点同C++不同)。其实在派生类里用相同的参数列表,相同的返回类型来覆写方法的这种做法,实在是太普通了。

    5.多了package

    访问控制符, import, 每个编译单元(.java文件)只能有一个public类,如果还有其他类,那这些类就成为这个
    public类的辅助类,这是因为他们都不是public的,因此对外边世界来说,它们都是看不到的。

    编译.java文件的时候,它里面的每个类都会产生输出。其输出的文件名字就是.java里面类的名字,这样写不了
    几个java文件就会产生一堆.class文件,但是不要奇怪,一个能正常工作的java文件本来就是由一堆.class文件
    组成的,当然也可以用jar把他们封装成java Archive (JAR)文件。java解释器会负责寻找,装载和解释这些
    文件的。

    package和import就好像一个刀一个盾。是把一个单独的全局名字空间分割开来,这样不论internet上有多少人
    再用java编程,你就都不会再碰到名字冲突的问题了。值得注意的是,每次创建package给它起名的时候,你也
    隐含的设置了一个目录结构。这个package必须保存在由它的名字所指示的目录里,而这个目录又必须在classpath
    下面。

    java的访问控制符:public是众所周知的可以任何人都可以访问的;package权限,默认的访问权限没有关键词,
    但通常还是把它成为package权限,(有时也成为friendly)它的意思是所有同属这个package的类都能访问这个
    成员,由于同一编译单元只能同属一个package,因此同一个编译单元里的各个类,自动的可以进行相互访问。
    protected, private.

  • 相关阅读:
    Centos下安装Redis
    Web框架的本质
    DOM Event
    HTML DOM
    JavaScript运算符
    JavaScript基础
    开发中常用的插件与框架
    selector模块
    IO模型(阻塞、非阻塞、多路复用与异步)
    事件驱动模型
  • 原文地址:https://www.cnblogs.com/huqingyu/p/66781.html
Copyright © 2011-2022 走看看