修饰符与关键字
修饰符与关键字
1、static 静态的
- static修饰的变量叫静态变量,或者叫类变量
- 存储的方法区中,只有一份,全类共有,被该类的所有实例共享
- 可以使用“对象.类属性”来调用,不过一般是用“类名.类属性”
- static修饰的方法叫静态方法
- 不需要对象,可以有“类名.方法名”调用
- 静态方法中不能使用this关键字,静态方法不能覆盖,同时不存在多态。
- static修饰代码块
- static修饰的代码块叫做静态代码块
- 静态代码块主要作用是在类装载完毕之后由用户书写额外的业务代码的一个功能区域
- 一个类可以有多个静态代码块,按照书写顺序执行
- 类中也可以有动态代码块,动态代码块是在创建对象的时候优先于构造器执行一个额外的代码书写结构。多个动态代码块按照书写顺序执行。
- static修饰内部类
- static修饰的内部类叫做静态内部类,静态内部类同样属于类的成员
- static修饰类,只能修饰内部类,不能修饰外部类
- 静态成员在类加载时就被初始化,非静态成员在创建对象时初始化,所以静态成员不能访问非静态成员,但非静态方法可以访问类的所有成员
2、this关键字
普通方法中,this指向调用该方法的对象
构造方法中,this指向同一类中的其他构造器,必须位于第一行
static方法不能用this,static方法的加载先于对象初始化
3、super关键字
指向父类的属性和方法
普通方法用sperm去执行被重写的父类中的方法。
构造器使用super去调用父类中的构造器。而且这行代码必须放在第一行,否则编译将出错。
4、访问修饰符(Access Modifier):
可以修饰:属性,方法,类 (接口,抽象类)
|
本类 |
同包中的其它类 |
不同包的子类 |
任意类 |
private(本类) |
YES |
NO |
NO |
NO |
(defult)(本包) |
YES |
YES |
NO |
NO |
protected(子类) |
YES |
YES |
YES |
NO |
public(公共) |
YES |
YES |
YES |
YES |
5、final修饰符
- final修饰属性
- final修饰的属性叫做常量,常量是在程序中一经赋值则不能被修改的一个属性
- final修饰的对象类型的变量指的是该对象的内存地址不能被修改
- final修饰的属性可以用构造器的方式赋值
- java中要想定义一个全局的静态常量,往往是用三个修饰符一起修饰变量
例如:public static final int a=10; //公共的静态常量
- final修饰的方法叫顶级方法,不能被重写
- final修饰的类叫做终极类,不能被任何类继承
6、abstract 抽象
- abstract修饰的类叫做抽象类
- 抽象类不能有实例对象 (不能new对象)
- 抽象类可以有属性,方法,抽象方法,构造方法,代码块
- 非抽象类中不可以有抽象方法,抽象类中不一定要有抽象方法
- abstract修饰的方法叫抽象方法
- 抽象方法不需要实现,实现留给子类重写,子类重写该方法之后方法才能够生效;
- 抽象方法不加大括号。 //abstract void change();