服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - Java基础之static关键字的使用讲解

Java基础之static关键字的使用讲解

2021-10-29 10:34sky-缘 Java教程

这篇文章主要介绍了Java基础之static关键字的使用讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下

static关键字

在Java中,static是静态修饰关键字。用于修饰类的成员方法、类的成员变量,另外可以编写static代码块来优化程序性能;被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问。

static关键字的作用

方便在没有创建对象的情况下来进行调用方法或者变量。被static关键字修饰的方法或者变量不需要依赖对象来进行访问,只要类被加载了,就可以通过类名去访问。

1.static修饰成员方法

static修饰的方法称为静态方法,由于静态方法不依赖任何对象就能够访问,因此静态方法中不能用this和super关键字,不能直接访问所属类的实例变量和实例方法,只能访问所属类的静态成员变量和成员方法。代码示例:

Java基础之static关键字的使用讲解

从上面代码看出,在静态方法t2调用非静态成员变量age和非静态成员方法t1时,系统报错。同时在静态方法t3中调用静态方法t2,编译通过。得出结论:在静态方法中不能访问非静态成员变量和非静态成员方法,但在非静态成员方法中能够访问静态成员方法和静态成员变量。同时静态的只能访问静态的。

 2.static修饰成员变量

按照是否是静态的可对类成员变量进行分类:一种是被static修饰的变量,叫做静态变量或者类变量;另一种是没有被static修饰的变量,叫实例变量。

静态变量和非静态变量的区别:

  • 静态变量被所有对象共享,在内存中只有一个副本,在类初次加载的时候才会初始化。
  • 非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响。

static成员变量的初始化顺序按照定义的顺序进行初始化。

3.static修饰代码块

static关键字还可用来形成静态代码块来优化程序性能,原因是它的特性:只会在类被初次加载的时候执行一次。

静态方法只能继承,不能重写

代码示例如下:

Java基础之static关键字的使用讲解

上面代码中在父类和子类中各自定义一个aa方法,在左边显示为Override标识;但在父类和子类中各自定义一个static方法test,但并没有出现Override标识,由此可知用static修饰的方法不能被重写。同时,如果子类不用static关键字修饰,继承父类时编译出错,可知静态方法只能被静态方法继承。

总结

  • static是一个修饰符,用来修饰成员,被修饰的成员变量称为静态变量或类变量。
  • static修饰的成员被所有的对象共享。
  • static修饰的成员能直接被类名调用,形式为:类名.静态成员。
  • 静态的只能访问静态的。
  • static关键字不能改变变量和方法的访问权限。
  • 静态成员变量虽然独立于对象,但是不代表不能通过对象去访问,所有的静态方法和静态变量都可以通过对象访问,只要访问权限足够。
  • static不允许用来修饰局部变量。

到此这篇关于Java基础之static关键字的使用讲解的文章就介绍到这了,更多相关Java基础之static内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/qq_44790505/article/details/119175936

延伸 · 阅读

精彩推荐
  • Java教程xml与Java对象的转换详解

    xml与Java对象的转换详解

    这篇文章主要介绍了xml与Java对象的转换详解的相关资料,需要的朋友可以参考下...

    Java教程网2942020-09-17
  • Java教程Java使用SAX解析xml的示例

    Java使用SAX解析xml的示例

    这篇文章主要介绍了Java使用SAX解析xml的示例,帮助大家更好的理解和学习使用Java,感兴趣的朋友可以了解下...

    大行者10067412021-08-30
  • Java教程Java8中Stream使用的一个注意事项

    Java8中Stream使用的一个注意事项

    最近在工作中发现了对于集合操作转换的神器,java8新特性 stream,但在使用中遇到了一个非常重要的注意点,所以这篇文章主要给大家介绍了关于Java8中S...

    阿杜7482021-02-04
  • Java教程小米推送Java代码

    小米推送Java代码

    今天小编就为大家分享一篇关于小米推送Java代码,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧...

    富贵稳中求8032021-07-12
  • Java教程20个非常实用的Java程序代码片段

    20个非常实用的Java程序代码片段

    这篇文章主要为大家分享了20个非常实用的Java程序片段,对java开发项目有所帮助,感兴趣的小伙伴们可以参考一下 ...

    lijiao5352020-04-06
  • Java教程升级IDEA后Lombok不能使用的解决方法

    升级IDEA后Lombok不能使用的解决方法

    最近看到提示IDEA提示升级,寻思已经有好久没有升过级了。升级完毕重启之后,突然发现好多错误,本文就来介绍一下如何解决,感兴趣的可以了解一下...

    程序猿DD9332021-10-08
  • Java教程Java BufferWriter写文件写不进去或缺失数据的解决

    Java BufferWriter写文件写不进去或缺失数据的解决

    这篇文章主要介绍了Java BufferWriter写文件写不进去或缺失数据的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望...

    spcoder14552021-10-18
  • Java教程Java实现抢红包功能

    Java实现抢红包功能

    这篇文章主要为大家详细介绍了Java实现抢红包功能,采用多线程模拟多人同时抢红包,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙...

    littleschemer13532021-05-16