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.namename;this.ageage;this.studentIdstudentId;}// 方法成员函数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 类的对象Studentstudent1newStudent(张三,20,S001);Studentstudent2newStudent(李四,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.titletitle;// this 指代当前对象this.authorauthor;this.priceprice;}}5.2this关键字this关键字代表当前对象的引用常用于区分成员变量和局部变量如构造方法中。在方法中调用当前对象的其他方法。在构造方法中调用另一个构造方法使用this(...)。5.3 成员变量 vs 局部变量特性成员变量局部变量声明位置类内部方法外部方法内部或代码块内部作用域整个类声明它的方法或代码块内初始值有默认值如int为 0Object为null必须显式初始化后才能使用生命周期随着对象的创建而存在随着对象的销毁而消失随着方法的调用而创建随着方法的结束而销毁6. 实战示例模拟一个银行账户让我们通过一个完整的例子来巩固所学知识。publicclassBankAccount{// 属性privateStringaccountNumber;privateStringaccountHolder;privatedoublebalance;// 构造方法publicBankAccount(StringaccountNumber,StringaccountHolder,doubleinitialBalance){this.accountNumberaccountNumber;this.accountHolderaccountHolder;this.balanceinitialBalance;}// 方法存款publicvoiddeposit(doubleamount){if(amount0){balanceamount;System.out.println(accountHolder存款成功当前余额balance);}else{System.out.println(存款金额必须大于0);}}// 方法取款publicvoidwithdraw(doubleamount){if(amount0amountbalance){balance-amount;System.out.println(accountHolder取款成功当前余额balance);}else{System.out.println(取款失败余额不足或金额无效。);}}// 方法查询余额publicvoidcheckBalance(){System.out.println(账户 [accountNumber] 当前余额为balance);}// 主方法用于测试publicstaticvoidmain(String[]args){// 创建对象BankAccountmyAccountnewBankAccount(622848001234567890,张三,1000.0);// 操作对象myAccount.checkBalance();myAccount.deposit(500.0);myAccount.withdraw(200.0);myAccount.withdraw(2000.0);// 这里会失败}}7. 总结类是模板定义了对象的属性和行为。对象是实例是类的具体化拥有具体的属性值。使用new关键字和构造方法来创建对象。通过对象引用.操作符来访问对象的属性和调用方法。理解this关键字和变量作用域是编写健壮类的基础。掌握类和对象的概念后你将能更好地理解 Java 面向对象编程的后续核心特性如封装、继承和多态。8. 下一步学习建议封装学习如何使用private、public等访问修饰符来保护类的数据。继承理解如何通过extends关键字创建类之间的“父子”关系实现代码复用。多态探索同一操作作用于不同对象时产生的不同行为。

相关新闻

最新新闻

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现 【免费下载链接】serenity The Serenity Operating System 🐞 项目地址: https://gitcode.com/GitHub_Trending/se/serenity 导读 本文以 getopt(3) 手册 为核心&a…

2026/10/1 19:32:24
轻量服务器还是ECS?大促云服务器选购与避坑实战指南

轻量服务器还是ECS?大促云服务器选购与避坑实战指南

每年大促节点,群里永远有人在问同一个问题:“38元的轻量服务器到底怎么抢?为什么我每次点进去都是已售罄?68元直购和99元的ECS我到底选哪个?”作为一个常年帮团队和自己采购云服务器的老用户,我太清楚这种纠…

2026/9/30 21:32:07
为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南

为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南

为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南 【免费下载链接】agents Multi-harness agentic plugin marketplace for Claude Code, Codex, Cursor, OpenCode, GitHub Copilot, and Google Antigravity 项目地址:…

2026/10/2 15:29:32
PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署

PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署

PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署 【免费下载链接】PaddleOCR Turn any PDF or image document into structured data for your AI. A powerful, lightweight OCR toolkit that bridges the gap between i…

2026/10/1 19:32:23
Spring源码解析:构造器注入的类型转换与候选匹配机制

Spring源码解析:构造器注入的类型转换与候选匹配机制

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 19:32:35
openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由

openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由

openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由 【免费下载链接】openai-agents-python A lightweight, powerful framework for multi-agent workflows 项目地址: https://gitcode.com/GitHub_Trending/op/openai-agents-pyth…

2026/9/30 21:32:11

日新闻

周新闻

月新闻