【自学笔记】01Java基础-02java基础语法-02变量、对象与类

1 变量、对象、类

  1. 变量
    变量是在编程中用来存储数据的占位符,它具有名称和值。在程序执行过程中,变量的值可以改变。根据作用域和生命周期的不同,变量可分为全局变量、局部变量、类变量(静态变量)、实例变量等。例如,在Java中,可以声明一个整型变量并赋值:

    int age = 25;
    

    在这段代码中,age 是一个变量,用于存储年龄这个数据。

  2. 对象
    对象是面向对象编程中的基本实体,它是类的一个实例。类是一个模板或蓝图,描述了一组相关属性(变量)和方法(行为)。当创建一个类的实例时,就得到了一个具体的对象。例如,假设有一个 Person 类,包含姓名和年龄两个属性,以及一个介绍自己的方法:

    public class Person {
        String name;
        int age;
    
        public void introduce() {
            System.out.println("Hello, my name is " + name + ", and I am " + age + " years old.");
        }
    }
    
    // 创建一个Person对象
    Person person = new Person();
    person.name = "坤";
    person.age = 30;
    person.introduce(); // 输出 "Hello, my name is 坤, and I am 30 years old."
    

    在这里,person 就是一个对象,它是 Person 类的一个实例,拥有 nameage 属性,并且可以调用 introduce() 方法。


  3. 类是一种用户自定义的数据类型,它封装了数据(成员变量/属性)和操作数据的方法(成员函数/方法)。类是对现实世界中某个概念或实体的抽象,它可以被用来创建多个相同类型的对象。类定义了对象的状态和行为。

    继续上述例子,Person 类就是一个定义了人这一概念的基本特性和行为的结构体。通过创建 Person 类的对象,我们能够表示世界上无数个不同的人,并为他们设置不同的名字和年龄,同时也具备自我介绍的能力。

2 Java中变量的分类

  1. 按作用域(声明位置)区分

    • 局部变量:定义在方法、构造器或者代码块内部的变量,其作用范围仅限于它们所在的代码块内。当控制流离开该代码块时,局部变量就会被销毁。
    • 成员变量:声明在类体中但不在任何方法内的变量,每个类实例都有自己的一份成员变量副本。成员变量的作用范围是整个类实例,从对象创建到垃圾回收为止。
    • 类变量:使用 static 关键字修饰的成员变量,它属于类本身,而不是单个类实例。所有该类的对象共享同一份类变量副本,可以通过类名直接访问。
  2. 按生命周期(Lifetime)区分

    • 局部变量:生命周期最短,仅存在于创建它的方法或代码块执行期间。
    • 成员变量(非静态):生命周期与对象相同,从对象创建开始,直到对象被垃圾回收结束。
    • 类变量(静态变量):生命周期始于类加载完成,终于类卸载。即使没有创建类的实例,也可以通过类名访问类变量。
  3. 按存储位置(Storage Location)区分

    • 寄存器变量(Register Variables):这是编译器层面的概念,在Java中不明确指出,由JVM根据需要优化存储位置。
    • 堆变量(Heap Variables):对象实例(包括非静态成员变量)存储在堆内存中。
    • 方法区变量(Method Area Variables):类变量(静态变量)、常量池内容以及类结构信息存储在Java虚拟机的方法区内。
  4. 按数据类型区分

    • 基本类型变量:如int, double, boolean, char等。
    • 引用类型变量:指向对象的引用,如String, Object以及其他自定义类的引用。
  5. 按是否可修改区分

    • 可变变量(Mutable Variables):值可以被改变的变量。
    • 不可变变量(Immutable Variables):一旦初始化后就不能更改其值的变量,例如final修饰的基本类型变量和不可变对象引用。

你可能感兴趣的:(自学笔记,笔记,开发语言,java)