static的用法及作用

Posted huanghexiang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了static的用法及作用相关的知识,希望对你有一定的参考价值。

static可以用来修饰属性、方法和代码块。static修饰的变量属于这个类所有,既由这个类创建的所有对象共用一个static变量。通常把static修饰的属性和方法称为类属性(类变量)、类方法。不使用static修饰的属性和方法属于单个对象,通常称为实例属性(实例变量)、实例方法。使用static修饰方法的最常见的例子是我们熟悉的main()方法。下面通过一个示例学习是static的用法及使用static修饰属性和代码块,是如何分配内存空间的。代码示例如下:

技术图片

 

 运行结果如图所示:

技术图片

 

 从结果中可以得出以下结论:

在加载类的过程中,完成静态变量的内存分配,再执行静态代码块,两者是在创建对象之前执行的。

类属性、类方法可以通过类名和对象名访问,实例属性、实例方法只能通过对象名访问。

类方法只能访问类属性和其他类方法。

注意:

静态方法中不能使用this和super关键字(super与继承有关)。

我们可以通过设置断点调试的方式观察执行顺序,以此加深对static的了解。另外,在使用常量时,为了方便调用,推荐使用static来修饰。例如:

static final String SEX_MAN="man";

在使用时可以直接通过类名。SEX_MAN方式使用。这时称这个常量为静态变量。

静态方法
静态方法可以直接通过类名调用,任何的实例也都可以调用,
因此静态方法中不能用this和super关键字,不能直接访问所属类的实例变量和实例方法(就是不带static的成员变量和成员成员方法),只能访问所属类的静态成员变量和成员方法。
因为实例成员与特定的对象关联!这个需要去理解,想明白其中的道理,不是记忆!!!
因为static方法独立于任何实例,因此static方法必须被实现,而不能是抽象的abstract。
例如为了方便方法的调用,Java API中的Math类中所有的方法都是静态的,而一般类内部的static方法也是方便其它类对该方法的调用。
静态方法是类内部的一类特殊方法,只有在需要时才将对应的方法声明成静态的,一个类内部的方法一般都是非静态的

以上是关于static的用法及作用的主要内容,如果未能解决你的问题,请参考以下文章

Java中static作用及用法详解

浅析static

浅析static

static关键字的作用?

c语言中static的作用和用法

5.JAVA基础复习——JAVA中的static关键字作用与用法