1.static关键字
1)使用static关键字可以修饰成员变量,称为静态变量
2)实例变量属于某个具体的对象,静态变量不属于某个对象,整个类所共享
3)通过一个对象修改了静态变量,再通过其他对象访问静态变量时就是修改之后的值
4)静态变量存储在方法区中,所有的对象都可以访问到它
5)实例变量是在创建对象时在堆中分配存储空间,对象被垃圾回收器收走,实例变量就释放了;静态变量在类加载内存时就在方法区中分配存储空间,一直到程序的结束
6)建议直接使用类名.来访问静态变量
7)静态变量的应用场景:当某个数据需要对所有对象共享时,就可以把这个数据定义为静态的
注意事项:
a:在静态方法中是没有this关键字的
因为:静态是随着类的加载而加载,this是随着对象的创建而存在。静态比对象先存在。
b:静态方法只能访问静态的成员变量和静态的成员方法
静态方法:
成员变量:只能访问静态变量——非静态的成员属于某个对象,在使用静态方法时,还没有创建对象呢
成员方法:只能访问静态成员方法
非静态方法
成员变量:可以是静态的,也可以是非静态的
成员方法:可以是静态的成员方法,也可以是非静态的成员方法
简单记:静态只能访问静态。
静态方法的应用场景:一般情况下,定义工具类的时候,可以使用静态方法。如果一个类中所有的方法都是静态的,需要多做一步:私有构造方法,为了不让其他类创建对象,直接用类名.调用即可。
2.静态变量和成员变量的区别
静态变量也叫类变量,成员变量也叫对象变量
A:所属不同
静态变量属于类,所以也称为类变量
成员变量属于对象,所以也称为实例变量(对象变量)
B:内存中位置不同
静态变量存储于方法区的静态区
成员变量存储于堆内存
C:内存出现时间不同
静态变量随着类的加载而加载,随着类的消失而消失
成员变量随着对象的创建而存在,随着对象的消失而消失
D:调用不同
静态变量可以通过类名调用,也可以通过对象调用(建议使用类名.调用)
成员变量只能通过对象名调用
3.静态构造代码块
1)使用 static可以修饰构造代码块,称为静态构造代码块
2)在使用某个类时,类加载器把字节码文件加载到内存中,在类使用之前需要对类进行初始化,类初始化之前先执行静态构造代码块
3)因为类的初始化只有一次,所以静态构造代码块也只执行一次
4)应用场景——有的时候,在使用某个类时,这个可能需要依赖一些外部资源,在使用类之前需要先把这些资源加载到类中
就可以把加载外部资源的操作放在静态构造代码块中
4.main方法格式详解
public:被jvm调用,所以权限要足够大
static:被jvm调用,不需要创建对象,直接类名.调用即可
void:被jvm调用,不需要有任何的返回值
main:只有这样写才能被jvm识别,main不是关键字
String [] args:以前是用来接收键盘录入的
5.说明书制作过程
A:对类加入文档注释
B:通过javadoc命令生成说明书
@author(提取作者内容)
@version(提取版本内容)
javadoc -d指定的文件目录- author -version 类名.java
@param 参数名称//形式参数的变量名称
@return 函数运行完返回的数据