java共有51个关键字,两个保留字:const和goto。
以下是五十一个关键字的一点简介。
1、 访问修饰符
private: private表示私有。用于类内的属性时,常常是用来封装的;用于方法的情况比较少,表示方法只能被本类中实例化的对象引用;
private只能修饰内部类-----外部类不能用private修饰,不然直接就报错!修饰内部类时,要与static连用。
class Demo
{
private int money;
Demo()
{
money=2000;
}
private int getMoney()
{
return money;
}
public static void main(String[] args)
{
Demo de=new Demo();
de.money=3000; //合法
int m=de.getMoney(); //合法
System.out.println("money="+m);
}
}
protected: protected无论是属性还是方法,用了protected,则表示该属性或方法不能被不同包的非子类访问。protected的权限介于public和private之间。能修饰类,但也只是能修饰内部类。
public: public能修饰类、属性、方法。修饰类时,无论它所处在的包定义在哪,该类(接口、成员)都是可访问的。一般不用来修饰属性。修饰方法时,可以被子类继承和其他类调用。
2、包
package: package的用处很大。在不同的包下,即使文件重名也没事——即用来管理各种类。
import: import主要用于引入包名——能帮我们省好多打字的力气。
static: static可用来修饰类名、属性、方法。用来修饰属性,实现将数据存入全局数据域。若是修饰方法,则可以不用实例化直接调用此方法。使用static方法,不能调用非static的方法或属性。
final: 使用final的类不能有子类。使用final的方法不能被子类所继承。使用final声明的变量即成为常量,常量不可以修改。
super: super关键字表示超(父)类的意思。可以使用super访问父类被子类隐藏的变量或覆盖的方法。当前类如果是从超类继承而来的,当调用super.XX()就是调用基类版本的XX()方法。
class Person{
protected void print(){
System.out.println("The print() in class Person.");
}
}
public class DemoSuper extends Person{
public void print(){
System.out.println("The print() in class DemoSuper.");
super.print();//调用父类的方法
}
public static void main(String[] args){
DemoSuper ds=new DemoSuper();
ds.print();
}
}
结果:
The print() in class DemoSuper.
The print() in class Person.
super(参数):调用基类中的某一个构造函数(应该为构造函数中的第一条语句)。class Person{
public static void prt(String s) {System.out.println(s);}
Person(){
prt("A Person.");
}
Person(String name){
prt("A person name is:"+name);
}
}
public class Chinese extends Person{
Chinese(){
super();//调用父类构造函数。
prt("A chinese.");
}
Chinese(String name){
super(name);//调用父类具有相同形参的构造函数。
prt("his name is:"+name);
}
public static void main (String[] args){
Chinese cn=new Chinese();
cn=new Chinese("kevin");
cn=new Chinese("kevin",22);
}
}
结果:
A Person.
A chinese.
A person name is:kevin
his name is:kevin
<!--[if !supportLists]-->3、 <!--[endif]-->基本数据类型
byte: 一个字节,常用于文件流
char: 两个字节,表示符号
short: 两个字节,短整型
int: 四个字节,有符号整型
long: 八个字节,长整型
float:四个字节,浮点型
double:八个字节,双精度型
boolean: false,true——两种情况
void: 表示不返回参数,常用在方法名前修饰。
null: 对于一个值来说,表示空值。常见于字符串。
4.定义类和定义接口,实现以及继承
class: 用来表示一个类。可以是修饰一个内部类,也可以修饰外部类。其实,主方法外面也是一个类,只不过主方法是静态的,不需要实例化对象就可以调用。
interface: 定义一个接口要用interface
implements: 接口继承所用的关键字。接口中的方法必须全部实现。
extends: 继承是一种很重要的关系,通过继承,可以大大减少程序员的工作量。继承中可以重写方法。
abstract: 抽象类介于继承的类和接口之间。若用abstract修饰一个方法,则包含这个方法的类必是抽象类。同时,抽象类继承后不用全部实现原来的方法。
5.流程控制
if :条件判断
else :与if搭配表示其他的情况
for :循环的关键字
while :可以与do搭配,也可以自己与循环体构成循环
do :必然要与while搭配
continue :不执行本次循环剩下的部分,而开始下一次循环
break :直接跳出循环
switch :与case、default搭配,进行分支判断
case :case后面表示一种情况
default :既表示case剩余的部分,也可以表示不加任何访问修饰符,通常称为“默认访问模式“。该模式下,只允许在同一个包中进行访问。
6.异常
try: try语句块包住要监视的语句,如果在try语句块内出现异常,则异常会被抛出
catch: 你的代码在catch语句块中可以捕获到这个异常并做处理
finally : finally语句块会在方法执行return之前执行
throws : 通过throws关键字在方法上声明该方法要抛出异常
throw : 在方法内部通过throw抛出异常对象
try{
程序代码
}catch(异常类型1 异常的变量名1){
程序代码
}catch(异常类型2 异常的变量名2){
程序代码
}finally{
程序代码
}
7.返回
return: 返回一个数据类型,可以是基本数据类型,也可以是引用数据类型
true: boolean类型中的一个,表示真
false: 表示假
new : new运算符,用于实例化一个新对象
this: 表示类中的属性,也可以类中其他的构造方法(this语句要放在句首),还可以表示当前的对象(当前在操作此方法的对象称为当前对象)。
instanceof: 可以用instanceof关键字判断一个对象到底是哪一个对象的实例。用法:对象 instanceof 类 –> 返回boolean类型
8.其它
enum 枚举类型,用法:public enum 类名{}
用法参考:
transient: transient是Java语言的关键字,用来表示一个域不是该对象串行化的一部分。当一个对象被串行化的时候,transient型变量的值不包括在串行化的表示中,然而非transient型的变量是被包括进去的。
synchronized: 是某个对象实例内,synchronized aMethod(){}可以防止多个线程同时访问这个对象的synchronized方法
http://tech.ddvip.com/2008-11/122708815693650.html
assert: assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这个boolean表达式的值为true;如果该值为false,说明程序已经处于不正确的状态下,系统将给出警告或退出。
http://tech.ccidnet.com/art/3737/20090408/1733925_1.html
native: Java无法直接访问到操作系统底层(如系统硬件等),为此Java使用native方法来扩展Java程序的功能。
http://weiwu83.iteye.com/blog/141197
strictfp: 用strictfp修饰类或方法,可以确保浮点运算(以及所有切断)正如早期的Java版本那样准确。切断只影响某些操作的指数。当一个类被strictfp修饰,所有的方法自动被strictfp修饰。
volatile: volatile修饰符告诉编译器被volatile修饰的变量可以被程序的其他部分改变。在多线程程序中,有时两个或更多的线程共享一个相同的实例变量。考虑效率问题,每个线程可以自己保存该共享变量的私有拷贝。实际的变量副本在不同的时候更新,如当进入synchronized方法时。