码迷,mamicode.com
首页 > 其他好文 > 详细

static的用法及作用

时间:2019-10-01 11:27:43      阅读:252      评论:0      收藏:0      [点我收藏+]

标签:对象关联   src   对象   作用   常见   java   运行   this   特定   

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的用法及作用

标签:对象关联   src   对象   作用   常见   java   运行   this   特定   

原文地址:https://www.cnblogs.com/huanghexiang/p/11615003.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!