Java 类和对象:面向对象编程的核心概念

📅 2026/7/29 18:26:21 👁️ 阅读次数 📝 编程学习
Java 类和对象:面向对象编程的核心概念

1. 引言

Java 是一种纯粹的面向对象编程语言,类(Class)对象(Object)是其最核心的概念。理解类和对象是掌握 Java 编程的基石。简单来说,类是蓝图,对象是根据蓝图创建的具体实例。本文将带你从零开始,深入理解 Java 中类和对象的概念、关系及使用方法。

2. 什么是类?

是对一类具有相同属性和行为的实体的抽象描述。它是一种自定义的数据类型,定义了该类对象所共有的状态(属性)行为(方法)

2.1 类的组成

一个典型的 Java 类包含以下部分:

  • 类名:遵循大驼峰命名法(如Car,Student)。
  • 属性(成员变量):描述对象的状态或特征。
  • 方法(成员函数):描述对象可以执行的操作或行为。
  • 构造方法:用于创建和初始化对象。

2.2 类的定义语法

// 使用 `class` 关键字定义一个类publicclassStudent{// 属性(成员变量)Stringname;intage;StringstudentId;// 构造方法(用于创建对象)publicStudent(Stringname,intage,StringstudentId){this.name=name;this.age=age;this.studentId=studentId;}// 方法(成员函数)publicvoidintroduce(){System.out.println("大家好,我叫"+name+",今年"+age+"岁,学号是"+studentId);}publicvoidstudy(Stringcourse){System.out.println(name+"正在学习《"+course+"》");}}

3. 什么是对象?

对象是类的一个具体实例。类是抽象的模板,而对象是根据这个模板创建出来的、拥有具体属性值和行为的实体。

3.1 创建对象

在 Java 中,使用new关键字和类的构造方法来创建对象。

publicclassMain{publicstaticvoidmain(String[]args){// 使用 `new` 关键字创建 Student 类的对象Studentstudent1=newStudent("张三",20,"S001");Studentstudent2=newStudent("李四",22,"S002");// 调用对象的方法student1.introduce();// 输出:大家好,我叫张三,今年20岁,学号是S001student2.study("Java编程");// 输出:李四正在学习《Java编程》}}

3.2 对象的内存模型

理解对象在内存中的存储有助于深入理解其本质。

  • 栈内存:存储对象的引用(变量名,如student1)。
  • 堆内存:存储对象实例本身(即属性数据)。
  • 使用new关键字会在堆内存中开辟空间,创建对象实例,并将该内存地址赋值给栈中的引用变量。

4. 类和对象的关系

我们可以用一个生动的比喻来理解它们的关系:

  • 类 = 汽车设计图纸
  • 对象 = 根据图纸生产出来的具体汽车

一张图纸(类)可以生产出无数辆汽车(对象),这些汽车具有相同的结构和功能(属性和方法),但每辆车的颜色、车牌号(属性值)可以不同。

5. 核心概念详解

5.1 构造方法

构造方法是一种特殊的方法,用于初始化新创建的对象。

  • 方法名必须与类名完全相同。
  • 没有返回类型(连void也没有)。
  • 主要作用是为对象的属性赋初始值。
publicclassBook{Stringtitle;Stringauthor;doubleprice;// 构造方法publicBook(Stringtitle,Stringauthor,doubleprice){this.title=title;// `this` 指代当前对象this.author=author;this.price=price;}}

5.2this关键字

this关键字代表当前对象的引用,常用于:

  1. 区分成员变量和局部变量(如构造方法中)。
  2. 在方法中调用当前对象的其他方法。
  3. 在构造方法中调用另一个构造方法(使用this(...))。

5.3 成员变量 vs 局部变量

特性成员变量局部变量
声明位置类内部,方法外部方法内部或代码块内部
作用域整个类声明它的方法或代码块内
初始值有默认值(如int为 0,Objectnull必须显式初始化后才能使用
生命周期随着对象的创建而存在,随着对象的销毁而消失随着方法的调用而创建,随着方法的结束而销毁

6. 实战示例:模拟一个银行账户

让我们通过一个完整的例子来巩固所学知识。

publicclassBankAccount{// 属性privateStringaccountNumber;privateStringaccountHolder;privatedoublebalance;// 构造方法publicBankAccount(StringaccountNumber,StringaccountHolder,doubleinitialBalance){this.accountNumber=accountNumber;this.accountHolder=accountHolder;this.balance=initialBalance;}// 方法:存款publicvoiddeposit(doubleamount){if(amount>0){balance+=amount;System.out.println(accountHolder+",存款成功!当前余额:"+balance);}else{System.out.println("存款金额必须大于0!");}}// 方法:取款publicvoidwithdraw(doubleamount){if(amount>0&&amount<=balance){balance-=amount;System.out.println(accountHolder+",取款成功!当前余额:"+balance);}else{System.out.println("取款失败!余额不足或金额无效。");}}// 方法:查询余额publicvoidcheckBalance(){System.out.println("账户 ["+accountNumber+"] 当前余额为:"+balance);}// 主方法,用于测试publicstaticvoidmain(String[]args){// 创建对象BankAccountmyAccount=newBankAccount("622848001234567890","张三",1000.0);// 操作对象myAccount.checkBalance();myAccount.deposit(500.0);myAccount.withdraw(200.0);myAccount.withdraw(2000.0);// 这里会失败}}

7. 总结

  • 是模板,定义了对象的属性和行为。
  • 对象是实例,是类的具体化,拥有具体的属性值。
  • 使用new关键字和构造方法来创建对象。
  • 通过对象引用(.操作符)来访问对象的属性和调用方法。
  • 理解this关键字和变量作用域是编写健壮类的基础。

掌握类和对象的概念后,你将能更好地理解 Java 面向对象编程的后续核心特性,如封装、继承和多态

8. 下一步学习建议

  1. 封装:学习如何使用privatepublic等访问修饰符来保护类的数据。
  2. 继承:理解如何通过extends关键字创建类之间的“父子”关系,实现代码复用。
  3. 多态:探索同一操作作用于不同对象时产生的不同行为。