Java-Final关键字,权限修饰符,内部类

一,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修饰)

猜你喜欢

转载自blog.csdn.net/weixin_69036336/article/details/128057198