zoukankan      html  css  js  c++  java
  • java中的类修饰符、成员变量修饰符、方法修饰符

    类修饰符:

    public(访问控制符),将一个类声明为公共类,他可以被任何对象访问,一个程序的主类必须是公共类。

    abstract,将一个类声明为抽象类,没有实现的方法,需要子类提供方法实现(抽象方法)。

    final,将一个类生命为最终(即非继承类),表示他不能被其他类继承。

    friendly,默认的修饰符,只有在相同包中的对象才能使用这样的类。

    说明:对于顶级类(外部类)来说,只有两种修饰符:public和默认(default)。因为外部类的上一单元是包,所以外部类只有两个作用域:同包,任何位置。因此,只需要两种控制权限:包控制权限和公开访问权限,也就对应两种控制修饰符:public和默认(default)。

    如果类使用了private修饰符,说明是个内部类。内部类的上一级是外部类,那么对应的有四种访问控制修饰符:本类(private),同包(default),父子类(protected),任何位置(public)。当一个内部类使用了private修饰后,只能在该类的外部类内部使用。

    1 package xiushi;
    2 
    3 class Test1 {
    4     
    5     private  class a1{
    6         //这个就是一个内部类
    7     }
    8 }

    成员变量修饰符:

    public(公共访问控制符),指定该变量为公共的,他可以被任何对象的方法访问。

    private(私有访问控制符)指定该变量只允许自己的类的方法访问,其他任何类(包括子类)中的方法均不能访问。

    protected(保护访问控制符)指定该变量可以别被自己的类和子类访问。在子类中可以覆盖此变量。

    friendly ,在同一个包中的类可以访问,其他包中的类不能访问。

    final,最终修饰符,指定此变量的值不能变。

    static(静态修饰符)指定变量被所有对象共享,即所有实例都可以使用该变量。变量属于这个类。

    transient(过度修饰符)指定该变量是系统保留,暂无特别作用的临时性变量。

    volatile(易失修饰符)指定该变量可以同时被几个线程控制和修改。

    说明:静态变量与实例变量的区别

    1:在语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加。

    2:在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,静态变量就可以被使用了。总之,实例变量必须创建对象后才可以通过这个对象来使用,静态变量则可以直接使用类名来引用。

    方法修饰符

    public(公共控制符)

    private(私有控制符)指定此方法只能有自己类等方法访问,其他的类不能访问(包括子类)

    protected(保护访问控制符)指定该方法可以被它的类和子类进行访问。

    final,指定该方法不能被重载。

    static,指定不需要实例化就可以激活的一个方法。

    synchronize,同步修饰符,在多个线程中,该修饰符用于在运行前,对他所属的方法加锁,以防止其他线程的访问,运行结束后解锁。

    native,本地修饰符。指定此方法的方法体是用其他语言在程序外部编写的。

     

     

     

  • 相关阅读:
    买了一个 站立式办公 桌子。
    AutoCppHeader AutoHeader 自动根据CPP 或C文件 来生成头文件。
    cplusplus 库 在线管理; 类似于 python的 pip install 、nodejs 的npm模块
    var this.value 可在任意地方 声明 类成员变量。如果可以利用在C++ 那该有多好啊
    最近遇到了 timer1sec 定时调用的函数,出现了 时间久了,就不是每秒一次了,可能会慢的情况。如何解决呢?
    【我的愿景】每个程序员都应该学习编译原理,而每个人都应该学习 编程 和 设计。
    [已解决]下载chromium源码 download_from_google_storage 无法下载文件
    突发奇想-取缔宏定义,用另外一种语言来做C++的部分外层封装
    我讨厌Apple Safari浏览器的一些地方。不想用
    unix时间戳time_t与UTC时区的关系
  • 原文地址:https://www.cnblogs.com/GH0522/p/8168952.html
Copyright © 2011-2022 走看看