JAVA的权限修饰符&特征修饰符
程序员文章站
2022-07-15 07:58:22
...
权限修饰符&特征修饰符
权限修饰符
public 公共的
protected 受保护的
默认不写(default) 默认的
private 私有的
特征修饰符
final 最终的不可更改的
static 静态的
abstract 抽象的
native 本地的(调用本地其他编程语言)
*transient 瞬时的短暂的----->序列化
*synchronized 同步的 线程问题
*volatile 不稳定的
权限修饰符
/*访问修饰符:可以修饰变量,方法,类
修饰变量:四种修饰符都能使用
修饰方法:四种修饰符都能使用
修饰类:2种 public,default */
//名字 范围
同类 同包 子类 不同包
private V X X X
默认 V V X X
protected V V V X
public V V V V
特征修饰符
static
- 静态,被static关键字修饰的不需要创建对象去调用,直接根据类名就可以去访问,也可以通过对象访问
- static可以修饰内部类,成员变量,方法,代码块
- static修饰的属性和方法位于位于静态区,是属于类的,不属于任何一个对象
- 每个类在内存中都有一个独立的静态区,静态元素只加载一次,只有一份
- 注意:普通类是不允许声名为静态的,但是static可以可以内部类,static修饰的内部类相当于一个普通的类,访问方式为(new 外部类名.内部类的方法() )
public class OuterClass {
public static class InnerClass{
InnerClass(){
System.out.println("============= 我是一个内部类'InnerClass' =============");
}
}
}
public class TestStaticClass {
public static void main(String[] args) {
// 不需要new一个InnerClass
new OuterClass.InnerClass();
}
}
知识点
- 1:static只能修饰成员变量,不能修饰局部变量,修饰的变量叫静态变量,静态变量在内存中只有一份存储空间
- 2:静态变量不属于某个实例对象,被一个类中的所有对象所共享,一旦被修改,大家都能看到
- 3:被static修饰过的属性属于类,不属于对象,编译器建议使用时直接使用类名.静态属性的方式去访问
- 4:static修饰的方法叫静态方法 可以直接通过类名调用,静态的方法可以被静态的方法直接调用,类名.方法名 ,静态方法属于类
- 5:static修饰代码块,静态代码块在类第一次被载入时执行,且只执行一次
- 6:静态的方法可以被静态的方法直接调用,类名.方法名 静态方法属于类
- 7:没有被static修饰过的方法可以直接调用被static修饰过的方法
- 8:静态方法不能直接调用动态方法(没有被static修饰过的方法)
- 9:在静态方法中不能直接使用this
- 10:构造方法可以直接调用静态方法
使用场景
- 使用场景就是做初始化工作,加载一些共享资源
- 写工具方法的时候,使用static修饰比较好
final
- final可以修饰类,方法,成员变量,局部变量
- 类被final修饰后,这个类就不能被继承
- 方法被final修饰后就不能被子类重写,存在位置位于访问修饰符和返回值类型中间
- 被final修饰的成员变量称之为常量,需要初始化赋值,且后面不能被重新赋值,常量名需要全部大写。
- final修饰的局部变量可以不需要初始化赋值,但是只拥有一次赋值的机会,赋值后不能修改
static和final共同修饰一个变量时表示静态常量
上一篇: struts2整合poi导出excel文件名乱码或不显示解决办法
下一篇: Oracle 索引 详解