//**********类变量(静态属性)
---JDK版本不同,类变量存放地方也不同(堆、方法区);但类变量 该类所有对象共有的属性。---
/*回忆内存中对象创建过程: 先加载类。然后进行属性的默认初始化(有默认值)全局变量不赋值也可使用,局部变量则不行。再显式初始化(创建属性时如有赋值), 然后构造器初始化,最后将对象在堆中的地址返回给对象名。*/
类变量是所有对象共有的,任何一个对象访问时它的值都是相同的,同样任何一个对象调用修改它的值,所有对象在调用值已改变(有引用传递时可改变原来堆中的值的感觉)
1.语法:
访问修饰符 static(关键字) 数据类型 变量名
static(关键字) 访问修饰符 数据类型 变量名 也可以,但不推荐
2.如何访问类变量
注意:类变量可以 (类名.类变量名)方式访问,前提是满足访问呢修饰符条件。也是最常用方式
或者(对象名.类变量名)来访问 普通变量(非静态变量)不能用类来访问。
//*****************类方法(静态方法)
.类方法语法
创建
访问修饰符 static 返回数据类型 方法名(){} [推荐]
或者static 访问修饰符 返回数据类型 方法名(){}
调用
类名.方法名() 或 对象名.方法名()要满足访问权限
细节
1. 类方法与普通方法一样都是随着类的加载而加载,将结构信息放在方法区。类方法中不能出现this参数,普通方法可以。
**2.类方法中不允许使用和对象相关的关键字,比如this 、super ,普通方法可以
****3.类方法中只能访问静态的属性,或静态的方法。没有static修饰的成员不能访问。
****普通方法中,即可访问非静态成员,也可访问静态成员