您的位置:首页 > 编程语言 > Java开发

java部分关键字理解及解析

2016-07-13 23:12 344 查看
java的关键字是有特别意义的标识符,有时又叫保留字,它不能用作变量名、方法名、类名、包名和参数。    关键字:abstract 表明类或者成员方法具有抽象属性assert 用来进行程序调试boolean 基本数据类型,布尔类型break 提前跳出一个代码块byte 基本数据类型,字节类型case 用在switch中,表示其中的一个分支catch 用在异常处理中,用来捕捉异常char 基本数据类型,字符类型class 类continue 回到一个代码块的开始位置default 默认do 用在do-while循环结构中double 基本数据类型,双精度浮点数类型else 用在条件语句中,表明当条件不成立时的分支 enum 枚举extends 表明一个类型是另一个类型的子类型,常见的有类和接口final 用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变finally 用来处理异常情况,用来声明一个基本肯定会执行到的语句块float 基本数据类型,单精度浮点数类型for 一种循环结构的引导词if 条件语句的引导词implements 表明一个类实现了给定的接口import 表明要访问指定的类或包(导入)instanceof 用来测试一个对象是否是指定类型的实例对象(父类转子类向下转型)int 基本数据类型,整型类型interface 接口long 基本数据类型,长整数类型native 用来声明一个方法是由计算机相关的语言(c/c++等)实现的new 用来创建新实例对象package 包private 访问控制方式:私用模式protected 访问控制方式:保护模式public 访问控制方式:共用模式return 从成员方法中返回数据short 基本数据类型,短整数类型static 表明具有静态属性super 表明当前对象的父类型的引用或者父类型的构造方法switch 分支语句结构的引导词synchronized 表明一段代码需要同步执行this 指向当前实例对象的引用throw 抛出一个异常throws 声明在当前定义的成员方法中所有需要抛出的异常transient 声明不用序列化的成员域try 尝试一个可能抛出异常的程序块void 声明当前成员方法没有返回值volatile 表明两个或者多个变量必须同步地发生变化while 用在循环结构中    关键字详细介绍abstract abstract关键字可以修改类或方法。 abstract类可以扩展(增加子类),但不能直接实例化。 abstract方法不在声明它的类中实现,但必须在某个子类中重写。 采用abstract方法的类本来就是抽象类,并且必须声明为abstract。 仅当abstract类的子类实现其超类的所有abstract方法时,才能实例化abstract类的子 类。这种类称为具体类,以区别于abstract类。 如果abstract类的子类没有实现其超类的所有abstract方法,该子类也是abstract类。 abstract关键字不能应用于static、private或final方法,因为这些方法不能被重写,因此,不能在子类中实现。 final类的方法都不能是abstract,因为final类不能有子类。  示例 public abstract class MyClass{} public abstract String myMethod();catch catch关键字用来在try-catch或try-catch-finally语句中定义异常处理块。 开始和结束标记{和}是catch子句语法的一部分,即使该子句只包含一个语句,也不能省 略这两个标记。每个try块都必须至少有一个catch或finally子句。 如果某个特定异常类未被任何catch子句处理,该异常将沿着调用栈递归地传播到下一个封闭try块。如果任何封闭try块都未捕获到异常,Java解释器将退出,并显示错误消息和  堆栈跟踪信息。示例 try{<可能引发异常的块>} catch(<java.lang.Exception或子类>e){<处理异常e的代码>} try{<可能引发其他异常的块>} catch(FooException e){<处理FooExceptione的代码>         } catch(BarException e){  <处理BarExceptione的代码>}我google了一下, 发现没有很好的中文答案。这个问题,在维基百科上有很好的回答。在 这里翻译给大家。译文:术语foobar, foo, bar, baz 和qux经常在计算机编程或计算机相关的文档中被用作占位 符的名字。当变量,函数,或命令本身不太重要的时候,foobar, foo, bar, baz 和qux就被用来充当这些实体的名字,这样做的目的仅仅是阐述一个概念,说明一个想法。这些术 语本身相对于使用的场景来说没有任何意义。Foobar经常被单独使用;而当需要多个实体 举例的时候,foo,bar,和baz则经常被按顺序使用。 try{  <可能引发异常的块>} catch(<java.lang.Exception或子类>e){<处理异常e的代码>} finally{<有异常或无异常情况下都执行的语句>}    final final关键字可以应用于类,以指示不能扩展该类(不能有子类)。 final关键字可以应用于方法,以指示不能重写任何子类中的方法。 一个类不能同时是abstract又是final。abstract意味着必须扩展类,final意味着不能  扩展类。 一个方法不能同时是abstract又是final。abstract意味着必须重写方法,final意味着不能重写方法。示例 public final class MyFinalClass{ } public class MyClass{ public final String myFinal Method() { <statements> } }finally finally关键字用来定义始终在try-catch-finally语句中执行的块。 finally块通常包含清理代码,用在部分执行try块后恢复正常运行。 开始和结束标记{和}是finally子句语法的一部分,即使该子句只包含一个语句,也不能省略这两个标记。 每个try块都必须至少有一个catch或finally子句。如果执行try块的任何部分,不论是否出现异常,也不论try或catch块是否包含return、 continue或break语句,都一定会执行finally块中的代码。 如果不出现异常,控件将跳过try块,进入finally块。
 如果在执行try块期间出现异常,并且相应的catch块包含break、continue或return语句 ,控件将首先穿过finally块,之后再执行break、continue或return。示例 try{  <可能引发异常的块>  } catch(<java.lang.Exception或子类>e){<处理异常e的代码>} finally{<有异常或无异常情况下都执行的语句>}implements implements关键字在class声明中使用,以指示所声明的类提供了在implements关键字后面的名称所指定的接口中所声明的所有方法的实现。示例public class Son implements Father{    } 在上例中,Son类必须提供在Father接口中所声明的所有方法的实现。否则,Truck类将是独立的;它可以声明其他方法和变量,并扩展另一个类。 一个类可以实现多个接口。instanceof instanceof关键字用来确定对象所属的类。示例 if(node instanceof TreeNode){<statements>  } 在上例中,如果node是TreeNode类的实例,或者是TreeNode的子类的实例,则 instanceof表达式的值将为true。interface interface关键字用来声明新的Java接口,接口是方法的集合。 接口是Java语言的一项强大功能。任何类都可声明它实现一个或多个接口,这意味着它实  现了在这些接口中所定义的所有方法。示例 public interface IPolygon{ public float getArea(); public int getNumberOfSides(); public int getCircumference();} 实现了接口的任何类都必须提供在该接口中的所有方法的实现。 一个类可以实现多个接口。staticstatic特点:方法区,第一次使用类是就会在方法区中给static变量分配空间,非static变  量是创建对象才分配static非static区别 --存储位置不同 --在内存中份数不同 --访问方式不同 --生命周期不同(分配空间的时间不同,消失时间不同)staic内存图 static方法 static方法的作用和访问方式 静态方法只可以访问静态变量和静态方法,非静态方法可以访问静态和非静态的方法和变量--内存分配图 注意:this属于对象,是非静态变量所以不能出现在静态方法中static代码块     局部代码块及其特点     代码块及特点   static代码块及特点 --第一次加载类的时候只执行一次   static关键字可以应用于内部类(在另一个类中定义的类)、方法或字段(类的成员变量)。示例 public class MyPublicClass{ public final static int MAX_OBJECTS=100; static int_numObjects=0; static class MyStaticClass{} static int getNumObjects(){    }    } 通常,static关键字意味着应用它的实体在声明该实体的类的任何特定实例外部可用。 static(内部)类可以被其他类实例化和引用(即使它是顶级类)。在上面的-示例-中,  另一个类中的代码可以实例化MyStaticClass类,方法是用包含它的类名来限定其名称,  如MyClass.MyStaticClass。 static字段(类的成员变量)在类的所有实例中只存在一次。 可以从类的外部调用static方法,而不用首先实例化该类。这样的引用始终包括类名作为
 方法调用的限定符。在上面的示例中,MyClass类外部的代码以MyClass.getNumObjects ()的形式调用getNumObjects()static方法。模式: publicfinalstatic<type>varName=<value>; 通常用于声明可以在类的外部使用的类常量。在引用这样的类常量时需要用类名加以限定 。在上面的-示例-中,另一个类可以用MyClass.MAX_OBJECTS形式来引用MAX_OBJECTS常 量super super关键字用于引用使用该关键字的类的超类。示例 public class MyClass{ public MyClass(Stringarg){ super(arg);} public String myStringMethod(){ return super.other String Method();}} 作为独立语句出现的super表示调用超类的构造方法。 super.<methodName>()表示调用超类的方法。只有在如下情况中才需要采用这种用法:要 调用在该类中被重写的方法,以便指定应当调用在超类中的该方法。this this关键字用于引用当前实例。示例 public class MyClass{ int number; public MyClass(intnumber){ this.number=number;}} 当引用可能不明确时,可以使用this关键字来引用当前的实例。 在上面的-示例-中,构造方法参数number与类的成员变量同名。this.number明确表示   MyClass的该实例的number成员变量。  throw throw关键字用于引发异常。示例 import java.io.IOException; public class MyClass{ public method readFile(Stringfilename)throws IO Exception{  <statements> if(error){ throw new IO Exception("errorreadingfile");    }    }    } throw语句将java.lang.Throwable作为参数。Throwable在调用栈中向上传播,直到被适 当的catch块捕获。引发非RuntimeException异常的任何方法还必须在方法声明中使用  
throws修饰符来声明它引发的异常。throws throws关键字可以应用于方法,以便指出方法引发了特定类型的异常。示例 import java.io.IOException; public class MyClass{ public method readFile(Stringfilename)throwsIOException{ <statements> if(error){ throw new IO Exception("errorreadingfile");  }   }    } throws关键字将逗号分隔的java.lang.Throwables列表作为参数。引发非  RuntimeException异常的任何方法还必须在方法声明中使用throws修饰符来声明它引发的 异
常。要在try-catch块中包含带throws子句的方法的调用,必须提供该方法的调用者。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: