static的使用:

关键字“static”的演示是:静态的。



静态变量和实例变量:

类的变量分为静态变量和实例变量2种:
static修饰的是静态变量。
没有使用static修饰的是实例变量。

两者的区别:

  1. 静态变量在内存中只有一个内存空间,在加载类的过程中完成静态变量的内存分配,可以直接通过类名来访问。
  2. 每创建一个新的实例对象,就会为实例变量分配不同的内存,各个对象访问自己的实例变量
  3. 无论创建了一个类的多少个对象,静态变量只初始化一次,所有的实例都可以访问此静态变量,而且可以通过类名直接访问。
  4. 静态方法的调用不需要创建对象,静态方法中的代码只能调用类的静态成员,而不能出现类的实例成员。

静态变量简单的说:静态方法只能调用静态变量,实例方法则没有要求。
并且静态变量只初始值一次,在建立多个对象对静态变量进行使用的时候,不会初始化,会在每一次对象调用后的基础上进行增加或者减少。

静态方法的语法:

[权限修饰符] static 返回值类型 方法名(类型参数 1,类型参数 2……)
{
方法体;
}

final 修饰变量:

final修饰变量时候,表示该变量的值不可改变,称为常量。
例如,圆类包含PI(圆周率)属性,且此属性的值在任何一个实例中都不会变化,将PI定义为常量更符合程序设计要求。

语法:

final数据类型 变量名 = 值;

基本数据类型的final特征:

  1. final修饰符可以修饰静态变量、实例变量和局部变量,分别表示静态常量、实例常量和局部常量。
  2. final类型的变量必须显式地初始化,否则将导致编译错误。
  3. final变量只能被赋值一次。
  4. 在定义final常量时,一般以大写字母命名,且多个单词之间使用下划线“_”隔开

例如:

final int MAX_VALUE=1000;
final int MIN_VALUE=0;

final修饰对象变量:

final修饰对象的时候,对象的引用(对象指向的地址)不能改变,但是对象的属性值却可以改变