成员变量、局部变量、静态变量
- 语法形式上:成员变量属于类,局部变量属于代码块或方法中的变量或方法的参数
- 存储区:局部变量存储在栈内存中,成员变量属于对象的属性,与对象一起存在堆内存中
- 生存时间:局部变量随着方法的调用而产生,随着方法的调用结束而消亡;成员变量是对象的属性,随对象的创建而产生,对象销毁则消亡。
- 有无默认值:成员变量有默认值(当成员变量被final修饰时,必须显式赋值)
- 修饰符:两者均可被public、private、final修饰,成员变量可以被static修饰,此时其为静态变量
- 静态变量:可以被类的所有实例共享。⽆论⼀个类创建了多少个对象,它们都共享同⼀份静态变量。 通常情况下,静态变量会被 final 关键字修饰成为常量
静态方法和实例方法
- 调用方式:调用静态方法无需实例化对象,可以用
类名.方法名或者对象名.方法名的形式调用;实例方法仅可用对象名.方法名调用 - 访问类成员变量限制:静态方法访问本类成员时,仅允许访问静态成员(静态成员变量和静态方法);实例成员可访问本类所有静态成员和非静态成员