static修饰的函数有什么特点(static可以修饰所有的变量吗)

static修饰的函数叫做静态函数,静态函数有两种,根据其出现的地方来分类:如果这个静态函数出现在类里,那么它是一个静态成员函数;        静态成员函数的作用在于:调用这个函数不会访问或者修改任何对象(非static)数据成员。        其实很好理解,类的静态成员(变量和方法)属于类本身,在类加载的时候就会分配内存,可以通过类名直接去访问;非静态成员(变量和方法)属于类的对象,所以只有…

大家好,又见面了,我是你们的朋友全栈君。

static修饰的函数叫做静态函数,静态函数有两种,根据其出现的地方来分类:

  • 如果这个静态函数出现在类里,那么它是一个静态成员函数

        静态成员函数的作用在于:调用这个函数不会访问或者修改任何对象(非static)数据成员

        其实很好理解,类的静态成员(变量和方法)属于类本身,在类加载的时候就会分配内存,可以通过类名直接去访问;非静态成员(变量和方法)属于类的对象,所以只有在类的对象产生(创建类的实例)时才会分配内存,然后通过类的对象(实例)去访问。

  • 如果它不是出现在类中,那么它是一个普通的全局的静态函数

        这样的static函数与普通函数的区别是:用static修饰的函数,限定在本源码文件中,不能被本源码文件以外的代码文件调用。而普通的函数,默认是extern的,也就是说它可以被其它代码文件调用。

  在函数的返回类型前加上关键字static,函数就被定义成为静态函数。普通 函数的定义和声明默认情况下是extern的,但静态函数只是在声明他的文件当中可见,不能被其他文件所用。因此定义静态函数有以下好处:
  <1> 其他文件中可以定义相同名字的函数,不会发生冲突。
  <2> 静态函数不能被其他文件所用。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/125426.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 安装glibc.i686错误「建议收藏」

    安装glibc.i686错误「建议收藏」2019独角兽企业重金招聘Python工程师标准>>>…

    2022年6月7日
    92
  • python中bool函数用法_在python中bool函数的取值方法「建议收藏」

    python中bool函数用法_在python中bool函数的取值方法「建议收藏」bool是Boolean的缩写,只有真(True)和假(False)两种取值bool函数只有一个参数,并根据这个参数的值返回真或者假。1.当对数字使用bool函数时,0返回假(False),任何其他值都返回真。>>>bool(0)False>>>bool(1)True>>>bool(-1)True>>>bool(213…

    2022年4月30日
    60
  • java枚举类型enum用法(java定义枚举常量类)

    文章目录枚举类的使用如何定义枚举类方式一:jdk5.0之前,自定义枚举类方式二:jdk5.0,可以使用enum关键字定义枚举类Enum类的主要方法toString()values()valueOf(StringobjName)使用enum关键字定义的枚举类实现接口的情况情况一:实现接口,在enum类中实现抽象方法情况二:让枚举类的对象分别实现接口中的抽象方法枚举类的使用枚举类的理解:类的对象只有有限个,确定的。我们称此类为枚举类当需要定义一组常量时,强烈建议使用枚举类如果枚举类中只有一个对象,则

    2022年4月16日
    36
  • FFmpeg从入门到精通笔记之一库介绍

    FFmpeg从入门到精通笔记之一库介绍FFmpeg:FastForwardMovingPictureExpertsGroup(mpeg:动态图像专家组)H.264:国际标准化组织(ISO)和国际电信联盟(ITU)共同提出的继MPEG4之后的新一代数字视频压缩格式.H.264是ITU-T以H.26x系列为名称命名的标准之一AVC(AdvanedVideoCoding):ISO/IECMPEG一方对H.264的称呼…

    2022年6月26日
    20
  • Android ListView等列表设置空布局

    Android ListView等列表设置空布局在Android平台上,listView是特别常用的组件之一,我们在向用户展示列表数据时,通常要考虑:列表有数据和无数据空的状态,因为网络环境各异,难免刷新失败什么的;在此之前我是使用ViewStub来实现,通过判断listview列表数据是否为空来设置ViewStub的隐藏和显示,或者设置lIstview的显示或隐藏;但是,对ViewStub不是特别的了解,把控不好,只是控

    2022年7月22日
    9
  • 韩顺平 2021零基础学Java 学习笔记(1)(自用)[通俗易懂]

    韩顺平 2021零基础学Java 学习笔记(1)(自用)[通俗易懂]目录第2章Java概述第3章变量第4章运算符第5章程序控制结构第6章数组、排序和查找第7章面向对象编程(基础部分)第8章面向对象编程(中级部分)第2章Java概述2.1Java重要特点Java语言是面向对象的(oop)Java语言是健壮的。Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证Java语言是跨平台性的。[即:一个编译好的.class文件可以在多个系统下运行,这种特性称为跨平台]Jav

    2022年10月10日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号