欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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共同修饰一个变量时表示静态常量
相关标签: JAVA基础