Java学习(二)Static关键字的理解
在讲Static之前,引入一个小题
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的目的(即为完成 程序员想要完成的动作)。