static变量有啥作用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了static变量有啥作用相关的知识,希望对你有一定的参考价值。
C语言中的static变量,可称为静态本地变量。一般来说,一个函数内部定义的变量的作用域和生存周期只限于这个函数。但是如果加了static在它前面,他的生存周期就会变大。也就是说离开这个函数后,这个静态变量不会被回收,会一直存在,保持着上一次的值,这点性质类似于全局变量。但是与全局变量不同的是,静态本地变量的作用域还是仅限于该函数内。希望能够对你有所帮助! 参考技术A static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。
只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象。
用public修饰的static成员变量和成员方法本质是全局变量和全局方法,当声明它类的对象市,不生成static变量的副本,而是类的所有实例共享同一个static变量。
static变量前可以有private修饰,表示这个变量可以在类的静态代码块中,或者类的其他静态成员方法中使用(当然也可以在非静态成员方法中使用--废话),但是不能在其他类中通过类名来直接引用,这一点很重要。实际上你需要搞明白,private是访问权限限定,static表示不要实例化就可以使用,这样就容易理解多了。static前面加上其它访问权限关键字的效果也以此类推。
java中的static和protected有啥区别?
【中文标题】java中的static和protected有啥区别?【英文标题】:What is the difference between static and protected in java?java中的static和protected有什么区别? 【发布时间】:2020-06-12 02:16:10 【问题描述】:您好,我目前正在学习 Java 编程考试,我想了解静态方法和受保护方法之间的区别。在此先感谢
【问题讨论】:
发布问题前请使用谷歌搜索或***搜索。 【参考方案1】:静态类和受保护类可以共存于一个变量,所以它们是非常不同的东西。如果您对面向对象编程没有很好的掌握,我强烈建议您在 YouTube 上查找教程,因为有一些非常好的教程! :)
静态变量 是属于 类 的变量,而不是类创建的每个单独的对象。这意味着,如果变量发生了变化,那么一切都会发生变化。
受保护的变量 是只能对其子类访问的变量。子类将拥有该变量,但没有其他类可以访问它。如果您知道公共变量和私有变量之间的区别,protected 有点像中间立场。
这是一个教程系列,我建议您了解更多信息。 https://www.youtube.com/playlist?list=PLAF3anQEEkzQPQv3FAhIuSWrepTayQJpL
【讨论】:
【参考方案2】:这两个是不同的概念。
static
defines whether a field or method belongs to the class or its instances.
protected
influences the visibility of a field or method。当字段或方法设置为protected
可见性时,只有继承自该类的类才能访问该字段或方法。
请注意,这两个关键字是正交的:一个字段或方法可以同时用static
和protected
修饰。
【讨论】:
【参考方案3】:既然您似乎是 java 语言的新手,简而言之:
protected:访问修饰符(成员变量+方法)。你可以在网上找到一大堆解释。
静态:非访问修饰符(块、变量、方法、嵌套类)
您可能需要检查 SIB/IIB(静态和实例初始化块以获得清晰的静态概念)
【讨论】:
是的,我对 java 还是很陌生,谢谢你的信息 :)以上是关于static变量有啥作用的主要内容,如果未能解决你的问题,请参考以下文章
JAVA语言中,被static关键字修饰的成员变量和类变量有啥区别?