当前位置: 首页 > article >正文

JAVA:类和对象完全解析

一、编程世界的乐高积木在面向对象编程OOP的宇宙中类Class和对象Object如同乐高积木的基础模块。如果把程序看作一个虚拟城市类就是建筑设计图而对象则是根据图纸建造的真实建筑。理解这对概念是打开Java编程大门的金钥匙。二、解剖类与对象1. 类Class——万物皆可描述的模板- 数据蓝图定义对象将包含的属性成员变量- 行为规范规定对象能执行的操作方法- 构造指南通过构造方法控制创建过程java// 手机类的定义public class SmartPhone {// 属性状态描述private String brand;private double screenSize;private int batteryLevel;// 构造方法创建规范public SmartPhone(String brand, double screenSize) {this.brand brand;this.screenSize screenSize;this.batteryLevel 100;}// 方法行为能力public void makeCall(String number) {System.out.println(正在呼叫 number);batteryLevel - 5;}public void charge() {batteryLevel 100;System.out.println(充电完成);}}2. 对象Object——鲜活存在的实例- 具体存在根据类模板创建的实体- 独立个体每个对象拥有自己的属性值- 行为主体可以执行类定义的操作java// 创建两个独立手机对象SmartPhone myPhone new SmartPhone(华为, 6.5);SmartPhone yourPhone new SmartPhone(苹果, 6.1);myPhone.makeCall(13800138000); // 我的手机拨号yourPhone.charge(); // 你的手机充电三、类与对象的DNA比对| 特征维度 | 类 | 对象 ||-----------------|-----------------------------|-----------------------------|| 存在形式 | 逻辑抽象的模板 | 物理存在的实例 || 内存分配 | 类加载时进入方法区 | 实例化时在堆内存创建 || 数量关系 | 1个类 | 可创建无数个对象 || 生命周期 | 程序运行期间始终存在 | 被垃圾回收时销毁 || 访问方式 | 通过类名访问静态成员 | 通过引用变量访问实例成员 || 修改影响 | 影响所有实例 | 仅影响自身实例 |四、对象诞生的生命周期1. 声明阶段SmartPhone phone;创建引用变量2. 实例化阶段new关键字触发类加载首次使用3. 初始化阶段执行构造方法完成属性赋值4. 使用阶段通过.操作符访问成员5. 回收阶段失去所有引用后等待GC回收五、内存探秘对象如何生存- 栈内存存储对象引用遥控器- 堆内存存储对象实例真实设备- 方法区存储类元信息设计图纸javaSmartPhone phoneRef new SmartPhone(小米, 6.8);- phoneRef → 栈内存中的引用64位系统占用8字节- new SmartPhone(...) → 堆内存中的对象实例包含所有实例变量六、面向对象设计原则1. 单一职责原则*一个类只做一件事java// 反例混合数据存储和显示逻辑class User {void saveToDatabase() { /*...*/ }void displayOnUI() { /*...*/ }}2. 高内聚低耦合内部紧密相关外部依赖最小化3. 合理封装使用访问修饰符控制可见性4. 对象自治数据操作封装在同一个类七、常见误区警示1. 混淆静态与实例成员javaclass Calculator {int result; // 每个计算器独立记录结果static final double PI 3.14; // 所有计算器共享常量}2. 过度创建冗余对象java// 错误示范重复创建相同配置对象for(int i0; i1000; i){new SmartPhone(标准版, 6.0);}3. 忽视空指针异常javaSmartPhone brokenPhone null;brokenPhone.makeCall(); // 引发NullPointerException4. 错误理解对象相等性javaString s1 new String(Java);String s2 new String(Java);System.out.println(s1 s2); // false比较对象地址System.out.println(s1.equals(s2)); // true比较内容八、从理论到实践的建议1. 命名规范类名使用大驼峰对象名见名知意2. 合理拆分当类超过500行时考虑职责拆分3. 对象池技术对昂贵资源重用对象如数据库连接4. 不可变对象对值对象使用final修饰javapublic final class ImmutablePoint {private final int x;private final int y;// 省略构造方法和getter}5. UML辅助设计使用类图理清关系九、总结面向对象编程不是简单的语法使用而是培养对象思维。试着用程序世界的眼睛观察现实每个路灯都是Light类的实例每辆汽车都是Car对象在运行整个城市就是一个庞大的对象协作系统。当你开始用这种视角思考就真正步入了OOP的殿堂。

相关文章:

JAVA:类和对象完全解析

一、编程世界的乐高积木在面向对象编程(OOP)的宇宙中,类(Class)和对象(Object)如同乐高积木的基础模块。如果把程序看作一个虚拟城市,类就是建筑设计图,而对象则是根据图…...

AI提示词工程:用Claude+Cursor构建高效创意工作流

1. 项目概述:当创意遇上AI,一个提示词库如何改变工作流如果你是一位创意工作者——无论是设计师、插画师、文案策划还是视频创作者,最近几个月,你的工作流里可能多了一个新伙伴:Claude。这个由Anthropic推出的AI助手&a…...

破解大规模3D地理空间数据转换瓶颈:5大技术突破实现10倍性能提升

破解大规模3D地理空间数据转换瓶颈:5大技术突破实现10倍性能提升 【免费下载链接】3d-tiles-tools 项目地址: https://gitcode.com/gh_mirrors/3d/3d-tiles-tools 行业痛点:当3D数据量级遭遇技术天花板 在数字孪生、智慧城市和地理信息系统领域…...

DeepSeek Jaeger性能压测实录:单日240亿Span写入下,存储层崩溃前的4.7秒黄金抢救窗口

更多请点击: https://intelliparadigm.com 第一章:DeepSeek Jaeger链路追踪 DeepSeek Jaeger 是 DeepSeek 系列可观测性工具中专为分布式系统设计的轻量级链路追踪实现,深度兼容 OpenTracing 与 OpenTelemetry 协议,并针对大模型…...

基于PM波谱的二级海浪三维数值建模与可视化仿真

摘要:海浪的数值建模与三维可视化仿真在海洋工程、船舶设计及海上作业安全评估等领域具有重要的应用价值。针对二级海况(有义波高约 1.0 m、风速约7 m/s)条件下的不规则海浪模拟需求,本文提出了一种基于Pierson-Moskowitz&#xf…...

如何开始嵌入式Linux的学习呢?

如何开始嵌入式Linux的学习呢? (又名:Imx-forge上手Roadmap) 我昨天一下班就回去看了一下仓库,的确太乱,而且mkdocs工具日益陷入停滞维护,所以我们转网站啦! 我本来打算直接画一个…...

终极指南:如何使用Gulf of Mexico轻松实现TCP/UDP网络通信

终极指南:如何使用Gulf of Mexico轻松实现TCP/UDP网络通信 【免费下载链接】GulfOfMexico perfect programming language 项目地址: https://gitcode.com/GitHub_Trending/dr/GulfOfMexico Gulf of Mexico(原DreamBerd)是一种创新的编…...

Xshell6启动报错0xc000007b:从DLL缺失到Visual C++库修复的完整排障指南

1. 当Xshell6突然罢工:0xc000007b报错初体验 那天早上我像往常一样双击Xshell6图标,准备连接服务器,结果突然弹出一个冰冷的错误窗口:"应用程序无法正常启动(0xc000007b)"。这种系统级错误代码对很多Windows用户来说就…...

如何5分钟掌握Jump:从安装到高效使用的完整教程

如何5分钟掌握Jump:从安装到高效使用的完整教程 【免费下载链接】jump Jump helps you navigate faster by learning your habits. ✌️ 项目地址: https://gitcode.com/gh_mirrors/ju/jump Jump是一款能够通过学习用户习惯来加速导航的命令行工具&#xff0…...

ORAN专题系列-8:5G O-RAN Option7分体式小基站硬件白盒化的关键组件与部署场景剖析

1. 5G O-RAN Option7分体式架构的核心价值 第一次接触O-RAN Option7架构时,最让我惊讶的是它像乐高积木一样的模块化设计。这种分体式架构把传统基站拆解成三个独立部件:负责智能调度的O-DU(分布式单元)、承担信号转换的O-RU&…...

别再乱改网段了!深入理解 VMware NAT 与桥接模式:根据你的真实需求选择网络配置(附场景对比)

深度解析VMware网络模式:NAT与桥接的实战选择指南 虚拟化技术已成为现代开发与测试环境的核心基础设施,而网络配置的选择往往决定了整个工作流的顺畅程度。许多用户在初次接触VMware Workstation时,面对NAT、桥接等模式常感到困惑——究竟哪种…...

多模态大模型评测框架VLMEvalKit:从原理到实践,实现高效公平的模型评估

1. 项目概述:一个开箱即用的多模态大模型评测工具箱 如果你最近在折腾多模态大模型,不管是想复现论文里的SOTA结果,还是想给自己训的模型做个“体检”,又或者只是想快速对比一下ChatGPT-4V、Gemini Pro Vision这些闭源巨头的实力…...

Awesome BigData实时数据集成平台:CDC连接器与数据同步工具终极指南

Awesome BigData实时数据集成平台:CDC连接器与数据同步工具终极指南 【免费下载链接】awesome-bigdata A curated list of awesome big data frameworks, ressources and other awesomeness. 项目地址: https://gitcode.com/gh_mirrors/aw/awesome-bigdata G…...

CodeGPT:基于AI的Git提交信息自动生成工具实战指南

1. 项目概述:CodeGPT,一个用Go写的AI驱动Git工具 如果你和我一样,每天都要在终端里敲无数次 git commit -m "..." ,并且为写一个清晰、规范的提交信息而绞尽脑汁,那今天分享的这个工具绝对能让你眼前一亮…...

在校生想进网络安全行业?聊聊NISP二级这个‘校园版CISP’的含金量与报考全攻略

在校生如何通过NISP二级证书抢占网络安全行业先机 当各大高校计算机相关专业的学生还在为毕业后的就业方向发愁时,一批有远见的同学已经悄悄考取了被称为"校园版CISP"的NISP二级证书。这张由中国信息安全测评中心颁发的国家级证书,正在成为网络…...

限时开放:ChatGPT Slogan生成专业版Prompt集(含金融/快消/科技三大垂直领域加密模板)

更多请点击: https://intelliparadigm.com 第一章:ChatGPT Slogan生成的核心原理与边界认知 ChatGPT 生成 slogan 的本质并非“创意发明”,而是基于大规模语料统计规律的条件概率采样。其输出受限于训练数据分布、指令微调策略(如…...

10个无状态服务构建技巧:解锁gh_mirrors/awe/awesome-sre中的水平扩展最佳实践

10个无状态服务构建技巧:解锁gh_mirrors/awe/awesome-sre中的水平扩展最佳实践 【免费下载链接】awesome-sre A curated list of Site Reliability and Production Engineering resources. 项目地址: https://gitcode.com/gh_mirrors/awe/awesome-sre 在现代…...

2026 最稳 AI 论文工具合集:好用不踩雷

毕业季的论文关卡,早已不是 “单打独斗” 的时代。从选题迷茫、大纲混乱,到文献难找、格式崩溃,再到查重超标、AI 率预警,每一个卡点都在消耗本科生的时间与精力。随着 AI 技术深度渗透学术场景,一批专注毕业论文写作的…...

Stack-on-a-budget:开发者必备的免费服务资源大全终极指南 [特殊字符]

Stack-on-a-budget:开发者必备的免费服务资源大全终极指南 🚀 【免费下载链接】stack-on-a-budget A collection of services with great free tiers for developers on a budget. Sponsored by Mockoon, the best mock API tool. https://mockoon.com …...

终极图片去重指南:用AntiDupl.NET轻松释放存储空间,告别重复图片困扰

终极图片去重指南:用AntiDupl.NET轻松释放存储空间,告别重复图片困扰 【免费下载链接】AntiDupl A program to search similar and defect pictures on the disk 项目地址: https://gitcode.com/gh_mirrors/an/AntiDupl 你是否曾为电脑里堆积如山…...

Naftis社区贡献指南:如何参与这个开源Istio项目

Naftis社区贡献指南:如何参与这个开源Istio项目 【免费下载链接】naftis An awesome dashboard for Istio built with love. 项目地址: https://gitcode.com/gh_mirrors/na/naftis Naftis是一个基于Apache 2.0协议开源的Istio仪表板项目,专为简化…...

RasaGPT:基于Rasa与Langchain的无头LLM聊天机器人平台架构解析

1. 项目概述:RasaGPT,一个开箱即用的无头LLM聊天机器人平台 如果你正在寻找一个能快速将大语言模型(LLM)能力集成到现有对话系统中的方案,并且希望这个方案能处理复杂的业务逻辑、支持多租户、还能轻松对接Telegram等…...

芯片设计复杂度量化:从经验估算到行业标准工时的工程实践

1. 芯片设计复杂度:从模糊感知到精确量化的工程革命在半导体行业摸爬滚打了十几年,我见过太多项目因为初期对“工作量”的误判而陷入泥潭。市场部拿着一个充满诱惑的规格书,研发总监拍着胸脯说“没问题,半年搞定”,结果…...

【实战指南】Ubuntu SSH服务配置与XShell/Xftp高效连接全解析

1. 为什么需要SSH远程连接Ubuntu? 作为开发者或运维人员,我们经常需要管理远程服务器。想象一下,你正在咖啡馆用Windows笔记本,突然需要紧急修改线上Ubuntu服务器的配置——这时候SSH就是你的救命稻草。它就像一把安全钥匙&#x…...

AI Agent社区平台架构实战:React 19 + Cloudflare边缘计算全栈开发

1. 项目概述:一个为AI Agent时代设计的社区平台如果你最近在折腾AI Agent,或者想找一些靠谱的AI工具,那你可能已经发现了一个痛点:信息太散了。教程、工具推荐、硬件配置、社区交流,这些内容散落在各个论坛、博客和社交…...

别再在循环里写Thread.sleep()了!IntelliJ IDEA这个告警到底在说什么?

循环中的Thread.sleep():为什么IntelliJ IDEA警告你正在"忙等待"? 在IntelliJ IDEA中编写Java代码时,你是否遇到过这样的警告:"Call to Thread.sleep() in a loop, probably busy-waiting"?这个看…...

Apache Arrow图像数据处理终极指南:如何构建高性能计算机视觉应用

Apache Arrow图像数据处理终极指南:如何构建高性能计算机视觉应用 【免费下载链接】arrow Apache Arrow is a multi-language toolbox for accelerated data interchange and in-memory processing 项目地址: https://gitcode.com/gh_mirrors/arrow13/arrow …...

构建现代化网络拓扑可视化的完整解决方案

构建现代化网络拓扑可视化的完整解决方案 【免费下载链接】easy-topo vuesvgelement-ui 快捷画出网络拓扑图 项目地址: https://gitcode.com/gh_mirrors/ea/easy-topo 在数字化转型浪潮中,网络架构日益复杂,传统的手绘拓扑图已无法满足现代运维需…...

博彩业税收支持STEM教育的风险与可持续筹资方案探讨

1. 项目概述:当教育经费与博彩业挂钩作为一名长期关注科技教育领域发展的从业者,我时常需要追踪全球范围内STEM(科学、技术、工程和数学)教育的政策与资金动向。最近在梳理历史资料时,一篇2012年的旧文再次引起了我的注…...

手把手教你:在无外网环境下搞定VSCode插件离线安装(附下载地址拼接技巧)

企业内网开发环境高效配置指南:VSCode插件离线部署实战 在高度安全管控的企业研发环境中,外网隔离是常见的安全策略。当新入职的工程师第一次打开内网电脑上的VSCode时,面对空空如也的插件市场,那种无从下手的焦虑感我深有体会。三…...