1、访问控制符
public:公共的,其限制最小
protected:受保护的,通常作为继承权限
default:默认的。
private:私有的,其限制最大。
修饰类的访问控制符:public和默认的访问控制符;修饰普通方法(构造方法)或者属性的访问控制符:上述四种都可以。
访问控制符 | 同一个类的内部 | 同一个包的内部 | 不同包的子类 | 不同包中的非子类 |
public | YES | YES | YES | YES |
protected | YES | YES | YES | NO |
default | YES | YES | NO | NO |
private | YES | NO | NO | NO |
2、类、方法、变量修饰符
2.1 abstract:声明抽象
2.2 class:声明是个类
2.3 extends:表明继承关系
2.4 interface:表明接口
2.5 implements:实现接口
2.5 new:创建新的对象
2.6 static:
1>静态类:通常情况下一个普通类是不允许声明为静态类的,只有一个内部类才可以。这时这个声明为静态的内部类就可以直接作为一个普通类来使用,无须实例一个外部类。
class Outer{
class Inner1{//非静态内部类
}
static class Inner2 {//静态内部类
Inner2() {
System.out.println("sort!");
}
}
}
public class sortAlgorithm {
public static void main(String[] args){
Outer.Inner2 inner=new Outer.Inner2(); //访问静态的内部类
Outer.Inner1 inner1=new Outer().new Inner1();//访问非静态的内部类 方法一
//方法二
Outer out = new Outer();
Outer.Inner1 inner1 = out.new Inner1();
}
}
2>静态方法
在一个类里面定义一个方法为静态的,也就是说无须本类的对象也可以调用此方法。声明为静态方法有以下几条限制:
他们仅能调用其他的static方法;只能访问static数据;不能引用this或者super。
调用静态方法就是:“类名.方法名”
3>静态变量:声明为static变量实质上就是“全局变量”。静态变量与静态方法类似,所有的此类实例共享此静态变量,也就是说在类加载的时候,只分配一块存储空间,所有此类的对象都可以操纵这块存储空间。
总的来说,static声明的变量要优于非static变量。
2.7 final:final关键字可以应用于类,以指示不能扩展该类,也可以用于方法,表示不能重写此方法。一个类或者方法既是abstract也是final,意味着必须扩展或者重写类或者方法,会产生错误,因此两者不可以同时出现。
3、异常处理
3.1 try:用于监听,将要被监听的代码(可能发生异常的代码)放在try语句块内,当try语句块内发生异常的时候,异常就被抛出。
3.2 catch:用于捕获异常,catch块用来捕获try块内发生的异常。
3.3 finally:该块总是被执行,它主要用于回收在try块里打开的资源,具体用法见前几篇博客。
3.4 throw:用于抛出异常。
3.5 throws:用在方法中,声明该方法可能发生的异常。
4、变量引用
4.1 super:调用父类的构造方法;操作被隐藏的成员变量或者被覆盖的成员方法。
4.2 this:
1>当成员变量与局部变量重名时,在方法中使用this,表示的是该方法所在类的成员变量(this是当前对象自己)
2>把自己当做参数进行传递,也可以用,(this做当前参数进行传递)
3>当在匿名内部类中用this的时候,this指匿名内部类或者内部类本身,如果这时要使用外部类的方法或者变量的话,要加上外部类的类名。