这篇文章主要介绍“Java中static关键字的使用方式”,在日常操作中,相信很多人在Java中static关键字的使用方式问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java中static关键字的使用方式”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
在Java中,static是静态修饰关键字。用于修饰类的成员方法、类的成员变量,另外可以编写static代码块来优化程序性能;被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问。
方便在没有创建对象的情况下来进行调用方法或者变量。被static关键字修饰的方法或者变量不需要依赖对象来进行访问,只要类被加载了,就可以通过类名去访问。
static修饰的方法称为静态方法,由于静态方法不依赖任何对象就能够访问,因此静态方法中不能用this和super关键字,不能直接访问所属类的实例变量和实例方法,只能访问所属类的静态成员变量和成员方法。代码示例:
从上面代码看出,在静态方法t2调用非静态成员变量age和非静态成员方法t1时,系统报错。同时在静态方法t3中调用静态方法t2,编译通过。得出结论:在静态方法中不能访问非静态成员变量和非静态成员方法,但在非静态成员方法中能够访问静态成员方法和静态成员变量。同时静态的只能访问静态的。
按照是否是静态的可对类成员变量进行分类:一种是被static修饰的变量,叫做静态变量或者类变量;另一种是没有被static修饰的变量,叫实例变量。
静态变量和非静态变量的区别:
静态变量被所有对象共享,在内存中只有一个副本,在类初次加载的时候才会初始化。
非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响。
static成员变量的初始化顺序按照定义的顺序进行初始化。
static关键字还可用来形成静态代码块来优化程序性能,原因是它的特性:只会在类被初次加载的时候执行一次。
静态方法只能继承,不能重写
代码示例如下:
上面代码中在父类和子类中各自定义一个aa方法,在左边显示为Override标识;但在父类和子类中各自定义一个static方法test,但并没有出现Override标识,由此可知用static修饰的方法不能被重写。同时,如果子类不用static关键字修饰,继承父类时编译出错,可知静态方法只能被静态方法继承。
总结
static是一个修饰符,用来修饰成员,被修饰的成员变量称为静态变量或类变量。
static修饰的成员被所有的对象共享。
static修饰的成员能直接被类名调用,形式为:类名.静态成员。
静态的只能访问静态的。
static关键字不能改变变量和方法的访问权限。
静态成员变量虽然独立于对象,但是不代表不能通过对象去访问,所有的静态方法和静态变量都可以通过对象访问,只要访问权限足够。
static不允许用来修饰局部变量。
到此,关于“Java中static关键字的使用方式”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。