java语法与.net不同的地方

java的数据类型分2种:

  基本数据类型:

    数值型:

      整数类型:

        byte:一个字节

        short:两个字节

        int:四个字节

        long:八个字节

      浮点类型:

        float:四个字节

        double:八个字节

    字符型(char):两个字节

    布尔型(boolean):一个字节

  引用数据类型:

    类(class):

    接口(interface):

    数组:

    

 

静态代码块:

  相当于.net的静态构造函数

  语法:static{}

  静态变量和静态代码块哪个在前,哪个先执行

 

 

内部类:

  .net中也有,不过很少用

  在类内部定义的类叫做内部类,内部类是外部类的一个成员

   引用方法:outer.inner inner = new outer().new inner();

  一个类可以有多个内部类

  在内部类中有一个默认的外部类实例引用:outer.this

  内部类可以直接访问外部类,外部类不能直接访问内部类

 

  在方法中定义的内部类为局部内部类,只能在方法中使用

 

  在方法中可以定义匿名内部类,匿名内部类为当前类名所表示的类的子类

  static修饰的内部类为静态内部类

  非静态内部类不能声明静态成员,

  因为静态成员不需要创建对象,如果内部类非静态,我们就不能通过.直接访问内部类,也就访问不到static变量

 

匿名内部类
  由于需要给方法传递一个对象,该对象只使用一次,所以可以用匿名对象
  由于子类被定义后只使用一次,所以可以使用内部类
  由于方法需要一个父类,我们就可以new一个父类对象,在类名后跟一对花括

    号,就表示匿名内部类,这时new的就不再是父类对象,而是一个子类对象,

    这个子类没有类名,所以我们称之为匿名内部类。匿名内部类做了两件事情,

    定义子类和创建对象。

 

继承

  单继承

  子类用super调用父类,.net用base

  new a() instanceof b 判断a是否属于b

 

 

final关键字:

  final可以用来修饰类,属性,方法

  final修饰的类不能被继承,相当于.net的sealed

  final修饰的方法不能被重写,相当于.net的方法没有virtual,java默认所有方法都能重写

  final修饰的变量称为常量,相当于.net的const

 

 

异常

  java中所有的异常和错误继承自Throwable接口,表示可被抛出的对象

  Throwable有两个子类:

    Error(错误):虚拟机系统错误,比较严重,处理不了,也不必处理

    Exception(异常):比较严重错误,必须处理,如果不处理,编译时会报错

    RuntimeException(运行时异常)是Exception的子类:一些小异常,发生比较频繁,处理麻烦,所以不强制处理,编译不会报错

  处理异常两种方式:

    1 throws,抛出

    2 try {}catch{}finally{} 捕获

 

 

java中的包:

  java类需要定义一个包名,包名尽量用英文,所有字母小写

  如果一个类被声明为public,这个类地类名必须和文件名保持一致,一个文件只能有一个public类

  编译带包的文件:java -d <dir> xxx.java

  访问不同包中的类时,要么加上包名,要么用import语句导入包

  import cn.* :会导所有类,首先在自己的包中找,没找到去导入的包中找

  import cn.person:直接去包中找

  如果包不在当前目录,需要访问包中的类,首先应该将包所在的目录加到classpath环境变量下

    然后导包,注意:任何时候都不能把java包和操作系统的目录看作一样

  

 

 

posted @ 2013-11-20 20:26  褐色键盘  阅读(507)  评论(0)    收藏  举报