一,Final关键字
1,final是java语言中的一个关键字。
2,final表示最终的,不可变的。
3,final可以修饰变量以及方法,还有类等。
Final关键字的作用
用于修饰类、属性和方法;
1,被final修饰的类不可以被继承。
final class Demo02 {
}
class Demo03 extends Demo02{
//错误,无法从最终类Demo02进行继承
}
2、被final修饰的方法不可以被重写。
class Demo04 {
public final void doWhere(){
System.out.println();
}
}
class Demo05 extends Demo04{
//错误,无法覆盖
}
3,被final修饰的变量不可以被改变,被final修饰不可变的是变量的引用,而不是引用指向的内容,引用指向的内容是可以改变的。
Final的基本用法
1、修饰类:当用final修饰一个类时,表明这个类不能被继承。也就是说,如果一个类你永远不会让他被继承,就可以用final进行修饰。final类中的成员变量可以根据需要设为final,但是要注意final类中的所有成员方法都会被隐式地指定为final方法。
注:在使用final修饰类的时候,要注意谨慎选择,除非这个类真的在以后不会用来继承或者出于安全的考虑,尽量不要将类设计为final类。
2、修饰变量
修饰变量是final用得最多的地方,也是本文接下来要重点阐述的内容。首先了解一下final变量的基本语法: 对于一个final变量,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对象。
二,权限修饰符
修饰符的分类:
权限修饰符:public、默认(包访问权限)、protected、private
其他修饰符:abstract、static、fianl、transient、volatile、native、synchronized、strictrp
权限修饰符:
1,修饰类:对于非内部类而言,类的访问权限仅有public和包访问权限两种(内部类可以是private或protected)
2,修饰成员:对于一个类,其成员能否被其他类访问,取决于该成员的权限修饰符。在Java中,类成员的访问修饰符有四个:public、默认(包访问权限)、protected、private。而访问的范围有5个:本类中、子父类(同一个包)、子父类(不同的包)、其他类(同一个包)、其他类(不同的包)。
在同一个包下的子父类中:除了private不能被访问,其它的都可以。
3,在不同包下的子父类中: public修饰的能被访问,对于protected修饰的,子类的实例可以访问从父类继承而来的protected方法。即在子类中的某个方法fun1()直接访问父类的protected方法,再去实例化子类,通过子类的实例调用fun1(),从而间接实现访问父类的protected方法,但不能通过父类的实例直接去访问其protected方法。
三,内部类
内部类在 Java 里面算是非常常见的一个功能了,在日常开发中我们肯定多多少少都用过。
从种类上说,内部类可以分为四类:普通内部类、静态内部类、匿名内部类、局部内部类。
内部类基本语法
class Outer{ //外部类
class Inner{ //内部类
}
}
class Other{ //外部其他类
}
内部类的分类
定义在外部类局部位置上(如方法内):
1,局部内部类(有类名)
2,匿名内部类(没有类名,重点!!!)
·定义在外部类的成员位置上:
3,成员内部类(没用static修饰)
4,静态内部类(使用static修饰)