一、核心概念理解(类与对象)
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
关键代码解释:
- 类的定义:
public class Student定义了一个名为 Student 的类,是所有学生对象的蓝图。 - 属性定义:
private String name等私有属性,遵循封装原则(隐藏内部细节,仅通过指定方法访问)。 - 构造方法:
new Student()时调用,用于初始化对象,有参构造可以直接给属性赋值,简化代码。 - Getter/Setter:
getName()获取属性值,setAge()修改属性值,且可以在 set 方法中做合法性校验(比如年龄不能为负数),这是封装的核心价值。 - 对象创建:
Student student1 = new Student()是创建对象的核心语法,new关键字表示实例化,在内存中创建具体的对象。
三、开发中常见的使用场景
- 封装数据:比如用户类(User)存储用户名、密码、手机号等属性,通过 get/set 控制访问。
- 业务实体建模:比如订单类(Order)包含订单号、金额、下单时间等属性,对应数据库中的订单表。
- 多对象管理:创建多个对象存储不同数据,比如多个 Student 对象存储不同学生的信息。
总结
- 类与对象的关系:类是抽象的 "蓝图",对象是类的具体实例,一个类可以创建多个不同属性值的对象。
- 对象属性的核心:属性是对象的状态数据,建议用
private修饰(封装),通过 Getter/Setter 访问和修改,可在 Setter 中做合法性校验。 - 开发核心步骤:定义类(属性 + 构造方法 + Getter/Setter + 方法)→
new创建对象 → 调用方法操作属性。
掌握这些核心知识点后,你可以尝试扩展示例(比如添加 "修改成绩" 的方法、增加 "是否及格" 的判断逻辑),进一步巩固类、对象和属性的使用。