Java学习(二)Static关键字的理解

来源:互联网 发布:smtp.163.com ssl端口 编辑:程序博客网 时间:2024/05/17 22:00

在讲Static之前,引入一个小题



答案为“c”



运行结果

Cannot make a static reference to the non-static field x:意思是无法再静态方法中引用一个非静态变量x

下面是对关键字Static的理解

1、关键字static(类方法,实例方法)

    ①:静态方法和静态变量是属于某一个类,而不属于类的对象

    ②:静态方法和静态变量的引用直接通过类名引用。

    ③:在静态方法中不能调用非静态的方法和引用非静态的成员变量。非静态方法中可以调用                静态方法和变量,即(反之,则可以)。(静态方法)

2、我们可以从运行抛出的异常可以看出:静态方法不能调用非静态变量

3、“主方法是static方法,只能使用static的成员。想使用x,需要开辟对象的空间,new 一个对         象,分配一个空间。”

    如果开辟一个对象空间,程序正常运行:


运行正常

4、被static修饰后的成员具有的特点:

     A:随着类的加载而加载。

     B:优先于对象存在(即在创建对象之前,就已经随着类的加载而存在)。

     C:可被所以对象共享。

     D:可以直接被类名调用(就是说没有创建对象,也可以调用)

5、下面是在网上查到的理解:

       关于静态修饰符static的几点特别注意点。

       A:静态方法只能访问静态成员。//非静态方法既可以访问静态成员,也可以访问非静态             成员。(静态成员包括:静态变量与静态方法)

      B:静态方法中不能使用关键字this或者super。(也就是静态方法中不能出现非静态的成员       变量)

      C:主函数的 修饰 必须为 static。

      D:静态方法中要,要调用非静态方法是可以可以使用对象来调用。(即调用前先创建个           对象,再使用 (对象.方法)来调用

6、最后一点,static静态代码块。

     该代码块随着类的加载而执行,并且只执行一次。有的class不用创建对象,那么这一类            class不用构造函数来初始化,可以直接使用静态代码块来达到该class的目的(即为完成            程序员想要完成的动作)。

0 0