java中 static 修饰符的使用
发布日期:2021-06-29 17:21:03 浏览次数:2 分类:技术文章

本文共 1703 字,大约阅读时间需要 5 分钟。

1、定义

在java中,static是一个修饰符,可以用来修饰变量或者方法,表示静态变量或静态方法,静态变量也叫作类变量,说明这个变量是属于类的,而不是属于对象的。没有static修饰的变量称为实例变量,表示该变量是属于某个具体对象的。当然,static也可以用于修饰静态代码块。

2、特点

(1)static既可以修饰变量,也可以修饰方法;

(2)被static修饰的变量或方法独立于该类的任何对象,即这些被static修饰的成员不属于任何一个实例对象;

(3)被static修饰的变量或方法是优先于对象存在的,在类的加载过程中,JVM就会为静态成员分配一次内存空间,当类被加载的时候,就会加载静态成员。即当一个类加载完毕后,即使没有创建对象,也可以访问静态成员。

3、意义(要解决的问题)

若要在不创建对象的情况下,也能使用某个变量或方法,则可以使用static来修饰该变量或方法。

4、使用中的注意事项

(1)在不使用实例对象的情况下,静态方法只能访问静态方法和静态变量,不能访问非静态成员;

原因:静态成员在对象创建之前就已经写入内存了,但非静态成员此时还不在内存中,因此不能直接使用。(但是可以实例化对象来访问,但是强烈不建议使用)

(2)非静态方法既可以访问非静态成员,也可以访问静态成员。

例:

class Solution {	public int peakIndexInMountainArray(int[] A) {        int index = 0;        int length = A.length;        for(int i = 1 ; i < length -1 ; i++) {        	if(A[i] > A[i + 1]) {        		index = i;        		break;        	}        }        return index;    }		public static void main(String[] args) {		int[] A = {0,2,1,0};		int index = peakIndexInMountainArray(A);  //静态方法直接访问非静态方法,编译出错	}}

上述为一个例子,main方法中直接访问非静态方法peakIndexInMountainArray时出现编译错误,改正方法有两种:(1)将peakIndexInMountainArray用static修饰;(2)实例化一个对象,通过对象来间接访问非静态方法peakIndexInMountainArray。

第二种方法的代码如下:

class Solution {	public int peakIndexInMountainArray(int[] A) {        int index = 0;        int length = A.length;        for(int i = 1 ; i < length -1 ; i++) {        	if(A[i] > A[i + 1]) {        		index = i;        		break;        	}        }        return index;    }		public static void main(String[] args) {		int[] A = {0,2,1,0};		Solution s = new Solution();    //实例化一个对象		int index = s.peakIndexInMountainArray(A);    //通过对象访问非静态方法	}}

综上,static成员的访问方式总结如下:

(1)静态变量:

方法一、类名.静态变量(同一个类中可以省略类名);

方法二、对象.静态变量(强烈不建议使用);

(2)静态方法:

方法一、类名.静态方法(同一个类中可以省略类名);

方法二、对象.静态方法(强烈不建议使用)。

转载地址:https://blog.csdn.net/m0_37415978/article/details/102557505 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:VMware中出现“此主机不支持64位客户机操作系统,此系统无法运行” 或者 “VMware Workstation 与 Hyper-V不兼容 ”的问题
下一篇:matlab解决蒙特卡洛求圆周率(含测试用例代码)

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2024年05月01日 18时46分28秒