static:
在类中,用static声明的成员变量为静态成员变量,也成为类变量。类变量的生命周期和类相同,在整个应用程序执行期间都有效。
这里要强调一下:
-
static修饰的成员变量和方法,从属于类
-
普通变量和方法从属于对象
-
静态方法不能调用非静态成员,编译会报错
1、static修饰成员变量,只能通过类名去调用(普通成员变量必须通过对像调用)
2、static方法也成为静态方法,由于静态方法不依赖于任何对象就可以直接访问,因此对于静态方法来说,是没有this的,因为不依附于任何对象,既然都没有对象,就谈不上this了,并且由于此特性,在静态方法中不能访问类的非静态成员变量和非静态方法,因为非静态成员变量和非静态方法都必须依赖于具体的对象才能被调用。
虽然在静态方法中不能访问非静态成员方法和非静态成员变量,但是在非静态成员方法中是可以访问静态成员方法和静态成员变量。
https://blog.csdn.net/kuangay/article/details/81485324
final:
1、final 修饰类:public final class wumu(){};
表示该类不可使被集成,同时该类中的方法和属性默认是被final 修饰的
2、final 修饰方法:public final void test(int a){}
表示该方法表示该方法无法被重写;
意义:防止集成它的子类修改它的含义
3、final修饰参数 public void test(final int a){}
表示该参数的引用不可以被赋值(调用方法传参的时候参数可以改变,但是在方法内不可以给参数赋值)
4、修饰变量 public final int a = 100;
表示该变量的引用不可以被赋值,便变量值不可以改变
总结
final关键字是我们经常使用的关键字之一,它的用法有很多,但是并不是每一种用法都值得我们去广泛使用。它的主要用法有以下四种:
- 用来修饰数据,包括成员变量和局部变量,该变量只能被赋值一次且它的值无法被改变。对于成员变量来讲,我们必须在声明时或者构造方法中对它赋值;
- 用来修饰方法参数,表示在变量的生存期中它的值不能被改变;
- 修饰方法,表示该方法无法被重写;
- 修饰类,表示该类无法被继承。
private: