JAVA的关键字小结
abstract Java 关键字?
abstract 关键字可以修改类或方法。?
abstract 类可以扩展(增加子类),但不能直接实例化。?
abstract 方法不在声明它的类中实现,但必须在某个子类中重写。?
示例?
public abstract class MyClass { } public abstract String myMethod();
注释?
采用 abstract 方法的类本来就是抽象类,并且必须声明为 abstract。?
abstract 类不能实例化。?
仅当 abstract 类的子类实现其超类的所有 abstract 方法时,才能实例化 abstract 类的子类。这种类称为具体类,以区别于 abstract 类。
如果 abstract 类的子类没有实现其超类的所有 abstract 方法,该子类也是 abstract 类。?
abstract 关键字不能应用于 static、private 或 final 方法,因为这些方法不能被重写,因此,不能在子类中实现。?
final 类的方法都不能是 abstract,因为 final 类不能有子类。?
extends Java 关键字?
extends 关键字用在 class 或 interface 声明中,用于指示所声明的类或接口是其名称后跟有 extends 关键字的类或接口的子类。?
示例?
public class Rectangle extends Polygon { }public final class MyFinalClass { } public class MyClass { public final String myFinalMethod() { <statements> } }try { <可能引发异常的块> } catch (<java.lang.Exception 或子类> e) { <处理异常 e 的代码> } finally { <有异常或无异常情况下都执行的语句> }public class Truck implements IVehicle { }if (node instanceof TreeNode) { <statements> }注释?public interface IPolygon { public float getArea(); public int getNumberOfSides(); public int getCircumference(); }注释?public class MyPublicClass { public final static int MAX_OBJECTS = 100; static int _numObjects = 0; static class MyStaticClass { } static int getNumObjects() { } }int arg = <some value>; switch (arg) { case 1: <statements> break; case 2: <statements> break; default: <statements> break; } char arg = <some value>; switch (arg) { case 'y': case 'Y': <statements> break; case 'n': case 'N': <statements> break; default: <statements> break; }public class MyClass { public synchronized static String mySyncStaticMethod() { } public synchronized String mySyncMethod() { } { public class MyOtherClass { Object someObj; public String myMethod() { <statements> synchronized (someObj) { <statements affecting someObj> } } }import java.io.IOException; public class MyClass { public method readFile(String filename) throws IOException { <statements> if (error) { throw new IOException("error reading file"); } } }import java.io.IOException; public class MyClass { public method readFile(String filename) throws IOException { <statements> if (error) { throw new IOException("error reading file"); } } }注释?
throws 关键字将逗号分隔的 java.lang.Throwables 列表作为参数。?
引发非 RuntimeException 异常的任何方法还必须在方法声明中使用 throws 修饰符来声明它引发的异常。?
要在 try-catch 块中包含带 throws 子句的方法的调用,必须提供该方法的调用者。?
transient Java 关键字?
transient 关键字可以应用于类的成员变量,以便指出该成员变量不应在包含它的类实例已序列化时被序列化。?
示例?
public class MyClass { private transient String password; }native?
native是方法修饰符。Native方法是由另外一种语言(如c/c++,FORTRAN,汇编)实现的本地方法。因为在外部实现了方法,所以在java代码中,就不需要声明了,有点类似于借口方法。Native可以和其他一些修饰符连用,但是abstract方法和Interface方法不能用native来修饰。?
Example:?
?