一、Private
通过private可以实现封装
(1)private修饰变量
使得变量不可被继承
被修饰的变量只允许在本类中访问
(2)private修饰方法
使得方法不可被继承
但是可以被本类中的其他方法访问
二、Final
(1)final修饰变量
被修饰的变量名大写(一种习惯)
一旦赋值不可更改(只能被赋值一次)
(2)final 修饰方法
不可被子类重写,但是可以被子类继承
不能用final修饰构造方法
Final方法比其他方法要快,在编译的时候已经静态绑定了,不需要再运行的时候进行动态绑定。
(3)final类
final参数:可读但是不可被修改
final类不可被继承
三、Static
(1)static变量
直接使用类名.变量名进行调用
类加载完毕之后初始化完成
实例化很多个类也只分配一次内存
静态变量属于类,内存中只有一个实例,当类被加载,就会为该静态变量分配内存空间。跟 class 本身在一起存放在方法区中永远不会被回收,除非 JVM 退出。(方法区还存哪些东西可以看看:Java虚拟机运行时数据区域)
静态变量的使用方式:【类名.变量名】和【对象.变量名】。
(2)static方法
不可被子类重写
直接以类名.方法名进行调用
不依赖于任何实例对象
在非静态成员方法中是可以访问静态成员方法/变量的;
即使没有显式地声明为static,类的构造器实际上也是静态方法
static方法就是没有this的方法。在static方法内部不能调用非静态方法,反过来是可以的。而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法。这实际上正是static方法的主要用途。
不能访问非静态成员变量和非静态成员方法(必须要在实例化之后进行访问,比如有一个people类,里面有一个静态方法,在写静态方法的实现方式的时候,如果要访问同样people类里面的其他方法,那么需要先进行实例化)
(3)static代码块
可以置于类中的任何地方
一个类中可以有多个static块
类被初次加载的时候,会按照static块的顺序来执行每个static块,且只执行一次
final方法和private方法的联系
父类的private方法是不能够被子类方法覆盖的,因此父类的private方法默认是final类型的
final,private,static的用法与区别
于 2022-08-05 12:22:42 首次发布