理解Java面向对象的基本概念:类和对象理解Java对象的属性熟练使用java的类,对象及属性开发程序

4 阅读5分钟

一、核心概念理解(类与对象)

1. 类 (Class) - 事物的 "设计蓝图"

类是对一类具有相同特征和行为的事物的抽象描述,就像:

  • 造车的设计图纸(定义了车该有什么属性:颜色、品牌;该有什么行为:启动、刹车)
  • 做蛋糕的配方(定义了蛋糕的原料:面粉、糖;制作步骤:搅拌、烘烤)

在 Java 中,类通过关键字class定义,包含两部分核心内容:

  • 属性(成员变量) :描述事物的特征(如人的姓名、年龄、身高)
  • 方法:描述事物的行为(如人的吃饭、跑步、说话)

2. 对象 (Object) - 基于蓝图创建的 "具体事物"

对象是类的实例化结果,是实实在在存在的个体。比如:

  • 基于 "车的设计图纸" 造出的具体一辆黑色宝马车
  • 基于 "蛋糕配方" 做出的具体一个草莓味蛋糕

每个对象都拥有类定义的所有属性和方法,但属性值是独一无二的(比如车的颜色可以是黑色 / 白色,年龄可以是 18/25)。

3. 对象的属性(成员变量)

属性是对象的状态数据,用于存储对象的特征值,有这些特点:

  • 定义在类中、方法外
  • 有默认值(整数 0、浮点数 0.0、布尔 false、引用类型 null)
  • 每个对象的属性独立存储,互不干扰

二、实战代码示例(类、对象、属性的使用)

下面通过一个 "学生类" 的完整示例,演示如何定义类、创建对象、操作属性:

java

运行

// 1. 定义类:学生类(设计蓝图)
public class Student {
    // 2. 定义对象的属性(成员变量)
    // 访问修饰符:private表示私有,仅本类可访问(封装原则)
    private String name;  // 姓名
    private int age;      // 年龄
    private String gender; // 性别
    private double score; // 成绩

    // 3. 构造方法:创建对象时初始化属性(无参+有参)
    // 无参构造(默认会自动生成,显式写出更清晰)
    public Student() {
    }

    // 有参构造:创建对象时直接给属性赋值
    public Student(String name, int age, String gender, double score) {
        this.name = name;
        this.age = age;
        this.gender = gender;
        this.score = score;
    }

    // 4. Getter/Setter方法:访问和修改私有属性(封装的核心)
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        // 合法性校验:属性赋值时的逻辑控制(封装的优势)
        if (age < 0 || age > 150) {
            System.out.println("年龄不合法,默认赋值为0");
            this.age = 0;
        } else {
            this.age = age;
        }
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public double getScore() {
        return score;
    }

    public void setScore(double score) {
        this.score = score;
    }

    // 5. 自定义方法:展示对象属性(对象的行为)
    public void showInfo() {
        System.out.println("学生信息:");
        System.out.println("姓名:" + name);
        System.out.println("年龄:" + age);
        System.out.println("性别:" + gender);
        System.out.println("成绩:" + score);
    }

    // 主方法:程序入口,测试类和对象的使用
    public static void main(String[] args) {
        // 方式1:无参构造创建对象 + set方法赋值
        Student student1 = new Student();
        student1.setName("张三");
        student1.setAge(18); // 合法年龄
        student1.setGender("男");
        student1.setScore(95.5);
        student1.showInfo(); // 调用方法展示属性

        System.out.println("------------------------");

        // 方式2:有参构造直接创建并赋值对象
        Student student2 = new Student("李四", 200, "女", 88.0);
        // 年龄200不合法,会触发setAge中的校验逻辑,赋值为0
        student2.showInfo();

        System.out.println("------------------------");

        // 方式3:直接通过get方法获取属性值
        String name = student1.getName();
        int age = student1.getAge();
        System.out.println("获取张三的信息:姓名=" + name + ",年龄=" + age);
    }
}

代码运行结果:

plaintext

学生信息:
姓名:张三
年龄:18
性别:男
成绩:95.5
------------------------
年龄不合法,默认赋值为0
学生信息:
姓名:李四
年龄:0
性别:女
成绩:88.0
------------------------
获取张三的信息:姓名=张三,年龄=18

关键代码解释:

  1. 类的定义public class Student 定义了一个名为 Student 的类,是所有学生对象的蓝图。
  2. 属性定义private String name 等私有属性,遵循封装原则(隐藏内部细节,仅通过指定方法访问)。
  3. 构造方法new Student() 时调用,用于初始化对象,有参构造可以直接给属性赋值,简化代码。
  4. Getter/SettergetName() 获取属性值,setAge() 修改属性值,且可以在 set 方法中做合法性校验(比如年龄不能为负数),这是封装的核心价值。
  5. 对象创建Student student1 = new Student() 是创建对象的核心语法,new 关键字表示实例化,在内存中创建具体的对象。

三、开发中常见的使用场景

  1. 封装数据:比如用户类(User)存储用户名、密码、手机号等属性,通过 get/set 控制访问。
  2. 业务实体建模:比如订单类(Order)包含订单号、金额、下单时间等属性,对应数据库中的订单表。
  3. 多对象管理:创建多个对象存储不同数据,比如多个 Student 对象存储不同学生的信息。

总结

  1. 类与对象的关系:类是抽象的 "蓝图",对象是类的具体实例,一个类可以创建多个不同属性值的对象。
  2. 对象属性的核心:属性是对象的状态数据,建议用private修饰(封装),通过 Getter/Setter 访问和修改,可在 Setter 中做合法性校验。
  3. 开发核心步骤:定义类(属性 + 构造方法 + Getter/Setter + 方法)→ new 创建对象 → 调用方法操作属性。

掌握这些核心知识点后,你可以尝试扩展示例(比如添加 "修改成绩" 的方法、增加 "是否及格" 的判断逻辑),进一步巩固类、对象和属性的使用。