类变量(静态变量):

  • 使⽤static声明的变量,可以直接使用类名.变量名访问
  • 一个类不管创建了多少个对象,类只拥有类变量的⼀份拷⻉贝,数值默认值是0,布尔型默认值

是false,引⽤类型默认值是null

  • 生命周期
    • 在第⼀次被访问时创建,在程序结束时销毁
  • 声明为public类型,一般这样声明 public static final
  • 存储在方法区,和堆栈不一样的⼀个空间

    1. public class VariableTypeTest {
    2. //类变量一般用大写
    3. public static final String NAME="会飞的野马";
    4. public static void main(String [] args){
    5. System.out.println(NAME);
    6. }
    7. }

    image.png

    实例变量(属性)

  • 需要使用对象.变量名才可以访问

  • 对象被实例化之后,实例变量的值就跟着确定,可以是赋值,也可以是默认值
  • 生命周期
    • 在对象创建的时候创建,在对象被销毁的时候销毁
  • 访问修饰符可以修饰实例变量,一般是私有的,private修饰,然后通过⽅法来进行查看或者修改

    1. public class Student {
    2. //介绍前缀
    3. public static final String PREFIX = "我是叫";
    4. //年年龄
    5. private int age;
    6. //姓名
    7. private String name;
    8. public int getAge() {
    9. return age;
    10. }
    11. public void setAge(int age) {
    12. this.age = age;
    13. }
    14. public String getName() {
    15. return name;
    16. }
    17. public void setName(String name) {
    18. this.name = name;
    19. }
    20. }

    image.pngimage.png
    image.png

    局部变量

  • ⽅法中的变量

  • 声明在方法、构造方法、语句句块、形式参数等
  • 生命周期
    • 当它们执⾏完成后,变量将会被销毁
  • 访问修饰符不能⽤于局部变量
  • 局部变量没有初始值,必须初始化后才可以被使⽤
    1. public class Student {
    2. //介绍前缀
    3. public static final String PREFIX = "我是叫";
    4. //年年龄
    5. private int age;
    6. //姓名
    7. private String name;
    8. public int getAge() {
    9. return age;
    10. }
    11. public void setAge(int age) {
    12. this.age = age;
    13. }
    14. public String getName() {
    15. return name;
    16. }
    17. public void setName(String name) {
    18. this.name = name;
    19. }
    20. //⾃自我介绍⽅方法
    21. public String introduce(){
    22. String content = PREFIX + name + ",年年龄是" + age;
    23. return content;
    24. }
    25. }