「埃尔法哥哥」JAVA中的关键字和保留字( 二 )


(3)abstract:可以修改类或方法 。 abstract类可以扩展(增加子类) , 但不能直接实例化 。 abstract方法不在声明它的类中实现 , 但必须在某个子类中重写 。 采用abstract方法的类本来就是抽象类 , 并且必须声明为abstract 。
(4)implements:在class声明中使用 , 以指示所声明的类提供了在implements关键字后面的名称所指定的接口中所声明的所有方法的实现 。 类必须提供在接口中所声明的所有方法的实现 。 一个类可以实现多个接口 。
(5)extends:用在class或interface声明中 , 用于指示所声明的类或接口是其名称后跟有extends关键字的类或接口的子类 。 子类继承父类的所有public和protected变量和方法 。 子类可以重写父类的任何非final方法 。 一个类只能扩展一个其他类 。
(6)new:用于创建类的新实例 。 new关键字后面的参数必须是类名 , 并且类名的后面必须是一组构造方法参数(必须带括号) 。 参数集合必须与类的构造方法的签名匹配 。 =左侧的变量的类型必须与要实例化的类或接口具有赋值兼容关系 。
C、修饰方法、类、属性和变量(共9个)
「埃尔法哥哥」JAVA中的关键字和保留字
文章图片
(1)static:static关键字可以应用于内部类(在另一个类中定义的类)、方法或字段(类的成员变量) 。 通常 , static关键字意味着应用它的实体在声明该实体的类的任何特定实例外部可用 。 static(内部)类可以被其他类实例化和引用(即使它是顶级类) 。 在上面的示例中 , 另一个类中的代码可以实例化MyStaticClass类 , 方法是用包含它的类名来限定其名称 , 如MyClass.MyStaticClass 。 static字段(类的成员变量)在类的所有实例中只存在一次 。 可以从类的外部调用static方法 , 而不用首先实例化该类 。 这样的引用始终包括类名作为方法调用的限定符 。 模式:publicfinalstaticvarName=;通常用于声明可以在类的外部使用的类常量 。 在引用这样的类常量时需要用类名加以限定 。 在上面的示例中 , 另一个类可以用MyClass.MAX_OBJECTS形式来引用MAX_OBJECTS常量 。
(2)final:应用于类 , 以指示不能扩展该类(不能有子类) 。 final关键字可以应用于方法 , 以指示在子类中不能重写此方法 。 一个类不能同时是abstract又是final 。 abstract意味着必须扩展类 , final意味着不能扩展类 。 一个方法不能同时是abstract又是final 。 abstract意味着必须重写方法 , final意味着不能重写方法 。
(3)super:用于引用使用该关键字的类的超类 。 作为独立语句出现的super表示调用超类的构造方法 。 super.()表示调用超类的方法 。 只有在如下情况中才需要采用这种用法:要调用在该类中被重写的方法 , 以便指定应当调用在超类中的该方法 。
(4)this:用于引用当前实例 。 当引用可能不明确时 , 可以使用this关键字来引用当前的实例 。
(5)native:以指示该方法是用Java以外的语言实现的 。 Java的不足除了体现在运行速度上要比传统的C++慢许多之外 , Java无法直接访问到操作系统底层(如系统硬件等) , 为此Java使用native方法来扩展Java程序的功能 。
可以将native方法比作Java程序同C程序的接口 , 其实现步骤:
①在Java中声明native()方法 , 然后编译;
②用Javah产生一个.h文件;
③写一个.cpp文件实现native导出方法 , 其中需要包含第二步产生的.h文件(注意其中又包含了JDK带的jni.h文件);
④将第三步的.cpp文件编译成动态链接库文件;
⑤在Java中用System.loadLibrary()方法加载第四步产生的动态链接库文件 , 这个native()方法就可以在Java中被访问了 。
(6)strictfp:strictfp的意思是FP-strict , 也就是说精确浮点的意思 。 在Java虚拟机进行浮点运算时 , 如果没有指定strictfp关键字时 , Java的编译器以及运行环境在对浮点运算的表达式是采取一种近似于我行我素的行为来完成这些操作 , 以致于得到的结果往往无法令人满意 。 而一旦使用了strictfp来声明一个类、接口或者方法时 , 那么所声明的范围内Java的编译器以及运行环境会完全依照浮点规范IEEE-754来执行 。 因此如果想让浮点运算更加精确 , 而且不会因为不同的硬件平台所执行的结果不一致的话 , 那就请用关键字strictfp 。 可以将一个类、接口以及方法声明为strictfp , 但是不允许对接口中的方法以及构造函数声明strictfp关键字 。


推荐阅读