1.final关键字
final的汉语意思是:最终的;决定性的;不可更改的;跟在Java中的功能一致;
被final关键字修饰的类是最终类,意思就是不能有子类;
被final关键字修饰的方法是最终方法,子类可以继承使用,但不能修改;
final关键字修饰变
被final关键字修饰的变量是常量,一旦赋值,不可被修改,而且必须在初始化对象的时候赋值;
成员变量:final修饰的成员变量必须在声明的时候初始化或者在构造器中初始化,否则就会报编译错误;
局部变量:final修饰的局部变量必须声明时赋值,如果不赋值,虽然声明是不会出错,但调用时会编译出错;
方法参数:如果 final 关键字修饰方法参数时,方法中是不能改变该参数的;
public static void main(String[] args) {
final int a=2;
a=4;
}
2.权限
访问权限控制: 指的是本类及本类内部的成员(成员变量、成员方法、内部类)对其他类的可见性,即这些内容是否允许其他类访问。
Java 中一共有四种访问权限控制,其权限控制的大小情况是这样的:public > protected > default(包访问权限) > private
1、public: 所修饰的类、变量、方法,在内外包均具有访问权限;
2、protected: 这种权限是为继承而设计的,protected所修饰的成员,对所有子类是可访问的,但只对同包的类是可访问的,对外包的非子类是不可以访问;
3、包访问权限(default): 只对同包的类具有访问的权限,外包的所有类都不能访问;
4、private: 私有的权限,只对本类的方法可以使用;
3.内部类
内部类一般分为四类
成员内部,类静态内部类,局部内部类,匿名内部类
成员内部类就是定义在一个类里面的类
public class Test02 {
public double a = 0;
private int b =1;
class abc {
public void Inner() {
//内部类是可以访问外部类的成员属性和成员方法的
System.out.println(a);
System.out.println(b);
}
}
}
静态内部类和成员内部类相似,只是有static修饰符。
public class Test02 {
public double a = 0;
static private int b =1;
public class static abc {
//跳红
System.out.println(a);
//正常的
System.out.println(b);
}
}
匿名内部类就是没有名字的类,主要优点在于编写方便,但是有个前提,内部类必须继承或者实现一个外部类或者接口
public class Test02 {
public InnerClass getInnerClass(final int num,String str2){
return new InnerClass(){
int number = num + 3;
public int getNumber(){
return number;
}
};
}
public static void main(String[] args) {
Test02 out = new Test02();
InnerClass inner = out.getInnerClass(2, "chenssy");
System.out.println(inner.getNumber());
}
}
//此处要有接口的声明
interface InnerClass {
int getNumber();
}