欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

[Java]java review,

来源: javaer 分享于  点击 32574 次 点评:237

[Java]java review,


1.identifier

以_、$、number开头

int $i = 10;


还可以用unicode

String /u4e00 = "abc";

float f/u4e01 = 1.1f;


enum作为关键字,从jdk1.5开始不允许作为identifier

非法:int e#;

 

2. java bean spec

getter setter必须为pubilc

对于listener,对应AddSomeListener,removeSomeListener

 

 

 

3. Interface, abstract

Interface methods must not be static

Interface methods can only be public, abstract (protected is not allowed but is legal for abstract method in abstract class)

abstract methods can not be marked final, strictfp, native

 

 

 

4. method override

override的method,子类不能抛出比父类更大、更多的exception,可以不抛异常,

unchecked (runtime)exception不受约束

 

 

父类的private的方法将不会被override, 子类的同名方法仅被看作一个普通方法

 

声明父类的应用到子类的instance,父类的方法会被assumed called,尽管实际上调用的是子类override的方法

所以调用要符合父类方法的声明特点,比如异常捕获等。

 

 

从JDK1.5开始,override时,返回类型为父类返回类型的子类时也合法

用1.4编译 javac -source 1.4 Base.java 将得到编译错误(imcompatible return type)

声明为final的method不能被override,但是一旦同时声明为private,对子类来说是hidden的,所以可以redefine一样的方法,只不过这里不是override

 

 

5. protected

protected 的可见是通过inheritance,而不是在子类直接操作父类的reference

 

 

 

 

 

 

6. 可变参数

overload时,可变参数的method会是最后的选择


 

7. enum

enum可看做特殊的java class,具体参见另一篇java里的enum

 

所以语法跟class类似

 

8. interface可以extends多个interface

 

 

9. overload

除了parameter list是必须要不同的之外,其他的return type, exception 声明, 访问权限(public,private...)都是任意的

父类、子类分别作为参数列表是合法的overload

overload是compile time确定的,所以由reference type决定,而不是object type,

override是runtime的,由object type决定,而不是reference type

 

 

10. constructor

抽象类可以有constructor,但interface不允许,interface不是一个类,只是定义一些规则而已,所以没有构造的意义,这个不同于抽象类

 

11. operators

+=, -= , *=,  /=包含有隐式转换

a+=b 不等价于 a=a+b

 

 

to be continued...

 

相关文章

    暂无相关文章
相关栏目:

用户点评