static的特性

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

static的特性
1,static⽅法就是没有this的⽅法。

在static⽅法内部不能调⽤⾮静态⽅法,反过来是可以的。

⽽且可以在没有创建任何对象的前提下,仅仅通过类本⾝来调⽤static⽅法。

这实际上正是static⽅法的主要⽤途。

(简⽽⾔之)⽅便在没有创建对象的情况下来进⾏调⽤(⽅法/变量)。

2,static⽅法
 static⽅法⼀般称作静态⽅法,由于静态⽅法不依赖于任何对象就可以进⾏访问,因此对于静态⽅法来说,是没有this的,因为它不依附于任何对象,既然都没有对象,就谈不上this了。

3,static变量
 static变量也称作静态变量,静态变量和⾮静态变量的区别是:静态变量被所有的对象所共享,在内存中只有⼀个副本,它当且仅当在类初次加载时会被初始化。

4,static代码块
 static关键字还有⼀个⽐较关键的作⽤就是⽤来形成静态代码块以优化程序性能。

static块可以置于类中的任何地⽅(除了⽅法内部),类中可以有多个static块。

在类初次被加载的时候,会按照static块的顺序来执⾏每个static块,并且只会执⾏⼀次。

静态块外部不能直接调⽤,静态块⼀般⽤在⼀些初始化操作。

static容易误解的地⽅:
1,Java中的static关键字不会影响到变量或者⽅法的作⽤域。

在Java中能够影响到访问权限的只有private、public、protected(包括包访问权限)这⼏个关键字。

2,静态成员变量虽然独⽴于对象,但是不代表不可以通过对象去访问,所有的静态⽅法和静态变量都可以通过对象访问(只要访问权限⾜够)。

3,Java中切记:static是不允许⽤来修饰局部变量。

(java语法规定的)
构造器是不是静态的?
不是
1,静态⽅法中不能使⽤this,⽽构造器中可以使⽤this关键字。

this是指调⽤当前⽅法的对象,⽽静态⽅法不属于任何对象。

2,静态⽅法是独⽴于对象的类级别的⽅法。

不创建实例的调⽤也不需要实例,构造函数是由jvm创建类实例时⾃动调⽤
3,构造⽅法不能继承,⽽静态⽅法可以继承。

相关文档
最新文档