|
|
此篇文章列出学习关键字的相关内容,不断添加中。。。
关键字列表:
| abstract | continue | for | new | switch | | assert*** | default | goto* | package | synchronized | | boolean | do | if | private | this | | break | double | implements | protected | throw | | byte | else | import | public | throws | | case | enum**** | instanceof | return | transient | | catch | extends | int | short | try | | char | final | interface | static | void | | class | finally | long | strictfp** | volatile | | const* | float | native | super | while |
| * | | not used | | ** | | added in 1.2 | | *** | | added in 1.4 | | **** | | added in 5.0 |
1、throws和throw
throws用于一般陈述句,一般用于声明函数会抛出何种异常;throw用于祈使句,命令在此处抛出某种异常。
2、assert
assert是从1.4开始引入的关键字,用作断言(assertion)。断言是提供给程序员用于测试和调试的工具。
在c语言中断言可以在编译的时候确定是否包含断言,而Java中则是在运行的时候确定是否包含断言:
-ea[:<packagename>...|:<classname>]
-enableassertions[:<packagename>...|:<classname>]
enable assertions
-da[:<packagename>...|:<classname>]
-disableassertions[:<packagename>...|:<classname>]
disable assertions
-esa | -enablesystemassertions
enable system assertions
-dsa | -disablesystemassertions
disable system assertions
assert语法:
assert experiton;//experition 为布尔表达式
assert experiton1:experition2;//experition1为布尔表达式,experition2为基本类型或对象,用于抛出AssertError时显示。
public class AssertTest{public static void main(String[] args){assert 1==2 : new AssertTest();}public AssertTest(){System.out.println("Hello assert");}} 输出结果为:
Hello assertException in thread "main" java.lang.AssertionError: AssertTest@c17164 at AssertTest.main(AssertTest.java:4)
assert不能出现在for循环中!
更详细的内容:
参见http://java.sun.com/j2se/1.5.0/docs/guide/language/assert.html#compiling
访问权限控制:public、protected、 包访问权限、private(访问权限要求逐渐升高)
访问者:类(通过继承)、函数(通过调用)
被访问者:类、函数、变量
public:接口级、向所有人提供权限
protected:受保护的,子类及对象可访问
包访问权限:提供同一包内访问权限
private:私有的,只有包含该成员的类可访问,其余均不可,包括子类及对象
权限由最后声明确定,如子类继承父类,权限由子类自己决定。只做好自己的事。
native:一个方法是由平台相关代码实现的(一般由c/c++/fortran/汇编语言编写),则将该方法定义为native,相当于调用底层语言的接口。
strictfp: strict float point
transient:to be written
volatile 和 synchronized:多线程相关,to be written |
|