「 Java 面向对象系列 02 」
📖 上篇回顾:Java面向对象核心入门:彻底搞懂面向对象思想,看懂面向过程与面向对象本质区别-CSDN博客
本文承接上篇思想,正式落地实操。上篇我们只解决了「为什么要用面向对象」,这篇开始动手写代码——类到底怎么定义、对象到底怎么 new 出来。
上篇结尾我们留了一个 Student 模板案例,本篇逐行拆解语法、手把手带你写标准面向对象代码,真正实现「数据+行为封装」,彻底入门 OOP 基础。
一、先回顾:类与对象到底是什么(两大核心概念)
上篇反复出现类、对象两个核心名词,本篇正式标准化定义。
1. 类(Class)= 图纸 / 模板 / 模具
类是抽象模板,用来统一描述同一类事物的共同特征与行为。
例如:学生就是一个类。
- 共同特征:姓名、年龄、班级
- 共同行为:学习、上课、考试
⚠️ 类本身不存储任何真实数据,只是一套通用规则模板。
2. 对象(Object)= new 出来的具体实例
对象是根据类的模板,通过 new 关键字 创建出来的真实个体,是唯一存放真实数据的载体。
例如:学生类可以衍生出无数具体对象——张三、李四、王五,每一个人都是独立对象。
3. 核心关系一句话
类是对象的模板,对象是类的实例。
4. 你早就会的 OOP 案例(Scanner)
Scanner sc = new Scanner(System.in);
int age = sc.nextInt();
- Scanner:是类(模板)
- sc:是对象(真实实例)
- sc.nextInt():指挥对象干活
你其实早就掌握了创建对象、调用对象方法,只是今天才正式弄懂底层概念!
二、怎么定义一个类(属性 + 方法)
面向对象的核心:将一类事物的「数据(属性)」和「行为(方法)」打包封装在一起。
一个标准的类,只由两部分组成:
1. 类的两大核心组成
- 成员变量(属性/字段):描述对象的特征、状态(有什么)
- 成员方法(方法):描述对象的行为、功能(能做什么)
2. 类的标准语法骨架
class 类名 {
// 1. 成员变量(属性:描述对象特征)
数据类型 属性名;
// 2. 成员方法(行为:描述对象动作)
修饰符 返回值类型 方法名(参数列表) {
// 方法体:具体业务逻辑
}
}
3. 实战案例:完整 Student 学生类
// 学生实体类:学生模板,只保存属性和行为
class Student {
// ===== 成员变量(属性/状态)=====
String name; // 姓名
int age; // 年龄
String className; // 班级
// ===== 成员方法(行为)=====
// 学生的学习行为:无返回值
public void study() {
// 方法可直接使用本类的属性
System.out.println(name + " 正在" + className + "认真学习~");
}
}
4. 代码逐行解析
- 成员变量:name、age、className 统一规定了「所有学生」都具备的特征
- 成员方法:study() 代表学生专属的学习行为,void 表示无返回值
- 封装特性:方法可以直接访问本类属性,真正实现「数据和行为绑定」
💡 关键核心:属性和方法必须写在同一个 class {} 中,才是面向对象封装;数据、行为分离散落在外,依然是面向过程写法。
三、怎么创建对象(new关键字实操)
类定义完成之后,它还只是一份模板,想要真正使用,就必须创建对象。Java 中使用 new 关键字来创建对象。
1. 创建对象标准语法
类名 对象名 = new 类名();
2. 语法拆解
Student stu = new Student();
- Student stu:声明一个 Student 类型的变量stu
- new Student():在内存中真正创建出 Student 对象
- =:把对象的内存地址赋值给变量stu,后续就通过stu操作这个对象
3. 对象的使用:点运算符 .
创建对象之后,通过**.点运算符**访问对象的属性、调用对象的方法。
// 读写对象数据
对象名.属性名
// 调用对象行为(必须带小括号)
对象名.方法名()
4. 完整可运行测试代码
// 测试类:专门存放程序入口
public class TestStudent {
public static void main(String[] args) {
// 1. 创建第一个学生对象
Student stu1 = new Student();
// 2. 给对象属性赋值
stu1.name = "张三";
stu1.age = 18;
stu1.className = "高一1班";
// 3. 调用对象方法
stu1.study(); // 输出:张三 正在高一1班认真学习~
// 复用模板:创建第二个独立学生对象
Student stu2 = new Student();
stu2.name = "李四";
stu2.age = 17;
stu2.className = "高一2班";
stu2.study(); // 输出:李四 正在高一2班认真学习~
}
}
5. 核心知识点
- 有类 ≠ 有对象:只有 new 才会开辟内存、生成真实对象
- 模板可无限复用:一个类可以 new 无数个对象,所有对象互相独立、互不干扰
6. 成员变量默认值规则
对象创建后,不手动赋值,Java 自动赋予默认值:
- int 数值型:默认 0
- String 引用型:默认 null
- boolean:默认 false
四、破除新手 4 大高频误区
1.定义完类,就能直接用属性?
❌ 不行。 类仅仅是模板,必须先 new 创建对象,再通过 对象. 的方式访问属性和方法。 不能直接在类外面写 name = "张三";,没有对象就没有地方存放这份数据。
2.一个类只能创建一个对象?
❌ 不对。 类是可复用模板,支持无限次 new。 每一次 new 都会生成一个全新、互相独立的对象。修改 stu1.age,完全不会影响 stu2.age。
3.成员变量必须声明时赋值?
❌ 不需要。成员变量自带默认值,不赋值也不会报错。
✅ 拓展:实际开发希望「创建对象就赋值」,后续会用 构造方法 解决。
4.main 方法和实体类混写?
不推荐!
- 实体类(Student):只存属性、方法,只负责描述事物
- 测试类(TestStudent):存放 main 入口,专门用来测试运行
✅ 分开写代码结构更清晰,贴合企业开发规范。
五、全文核心小结
- 类与对象:类是抽象模板(无数据、不占内存);对象是 new 出来的真实实例(存数据、占内存)
- 定义类:class + 大驼峰类名,内部封装「成员变量(属性)+ 成员方法(行为)」
- 使用对象:对象.属性 操作数据,对象.方法() 执行行为
- 避坑要点:类不等于对象、模板可复用、属性有默认值、main入口和实体类分离
✨ 终极一句话总结:
类将属性(数据)和方法(行为)打包成通用模板,对象是模板生成的真实独立个体;对象.属性 负责读写数据,对象.方法() 负责执行行为,这就是面向对象最核心的工作方式。






