OOP 训练营类和对象基础知识
怎么入门文章编程?需要学习哪些知识点?这是新手们刚接触编程时常见的问题;下面golang学习网就来给大家整理分享一些知识点,希望能够给初学者一些帮助。本篇文章就来介绍《OOP 训练营类和对象基础知识》,涉及到,有需要的可以收藏一下

为什么使用类和对象
我讨厌生病。从健康和感觉良好的状态变成像维多利亚时代病弱的孩子临终前的感觉并不有趣。我们的生活就是经历各种存在状态。我们的行为可以调整我们的状态,其他事物和人的状态也可以。老师给你作业,你毕业了,你不再是学生了。你获得学位,成为老师、家长、雇员等。你用一生的时间改变状态。
我们的网络系统遵循类似的属性和行为模式就不足为奇了。我认为现代计算与公式转换或优化无关,而是与适当的状态管理有关。我们的 web 框架以它为中心,我们的 api 和数据调用依赖于它,异步行为完全依赖于它,正确的多线程行为也是如此。
但是,对于像我这样没有上过计算机科学学校的人(或者根本没有上过学的人)来说,可能很难理解这个想法。 oop 感觉就像是现代计算之巅的另一个臃肿、设计糟糕的概念(我有时认为它也可能是这样的)。然而,当我们深入研究 oop 的指导原则时,我们可以看到状态和状态管理如何成为我们生活的重要组成部分,以及为什么如此多的语言包含一些基于类的行为的功能。
旁注 1:我对你的项目撒了谎
不过只是一点点。我在上一课中说过,我们将开发一个作业调度程序,这是事实,但是作业调度程序需要调度作业,并且在实现作业调度程序之前构建一个需要一些状态管理的实际系统才更有意义。因此,我从头开始构建了一个库存管理系统 sql 模式。您可以在这里获取它,我在那里保存了我当前所有学习资源的转储。这是一项繁重的工作正在进行中,所以请忽略这些混乱。
我们将在我们已经构建的基础上构建一个库存管理系统,从一个简单的应用内、仅内存系统开始,逐步发展成为一个成熟的服务。虽然我将使用 c# 构建这个特殊的玩具系统,但您可以轻松地使用任何语言进行操作,并且我将确保描述有关 c# 的任何独特之处,以便您可以自己弄清楚如何实现它。
旁注 2:绘图的力量
引用 matthias felleisen 等人关于绘制图表的观点:
手绘它们。图表是程序员的涂鸦局域网-
规格。使用从现有代码中为您绘制它们的工具会失败
目的。分配学生这样做违背了学习的目的
涂鸦。
不要害怕拿起一些纸和铅笔来勾勒出您的系统的外观、它如何与自身交互或者需要向最终用户公开哪些 api。盲目地编写代码很快就会把事情搞得一团糟。最终,你对涂鸦的需求会变得越来越少,但在将某些东西放入代码之前将其绘制出来总不会有什么坏处。
请记住,oop 是对对象及其状态之间的现实交互进行建模。您不需要使用任何花哨的东西,例如 uml 或某些图表服务,只需牢牢掌握您想要的系统外观就大有帮助。虽然这可能看起来很愚蠢或不符合你的要求,但学会用视觉方式思考正在发生的事情可以培养你自己的技能和能力。
考虑到这些,让我们开始表演:
类和 cookie
继续打开您选择的 ide 并创建一个新的控制台应用程序:
程序.cs
namespace oop_camp_ims;
class program
{
static void main(string[] args)
{
}
}
恭喜!这就是我们今天的库存管理系统,因为 a. 我们将在下一课中开始真正构建它,b. 我还没有时间开始设置我们的系统。
现在,请注意类行和 static void 主线。我们之前已经研究过类和方法,但这些是类和方法的主要示例,但是类到底是什么?
我喜欢假期。我是一个大美食家,这对我来说意味着有很多时间来烹饪美食。我喜欢为新年前夜做的一个特别的食谱是阿卡迪亚/卡津浓汤。我花了很多时间根据我和我家人的个人喜好制定食谱(我喜欢辣,他们喜欢温和,带有一些“活力”),我的大家庭每年都会要求它。
食谱不是食物,食物也不是食谱,但食谱告诉我如何制作食物。同样,课程告诉我们如何制作某些东西,但并不是东西本身。我们的类可以包含各种“事物”,它们构成了类的本质。一旦我们的班级充满了东西,我们就需要实际“烹饪”食谱
class recipe
{
int list instructions;
hashmap (string, string) ingredients;
string regiontype;
int difficultylevel;
}
这是超酷面向对象语言或 scool 中的一个小类的表示(总共 100% 不是我刚才编造的),它只是创建一个数组/列表,其中包含我们的说明、成分、食物是从哪里来的,制作起来有多困难。可以这么说,我们有一个关于如何创建 recipe 类的食谱。
为了烹饪它,我们需要制作一个物体:
function main()
{
recipe gumbo = new recipe;
}
像 java 和 c# 一样,scool 有一个 main 函数(也称为方法),一切都从这里开始。在此函数的第 3 行中,我们有 recipe gigbo = new recipe,这相当于想要根据菜谱制作饼干。我们告诉编译器或解释器“嘿,我们有这个菜谱,我们称之为菜谱,我们想要制作它。将原料放在一起,为我们制作。”
这称为实例化对象,是基于 oop 的语言工作的重要组成部分。
让我们看另一个例子:
class Person {
String name;
int age;
static String species = "Human";
Person(String name, int age) {
this.name = name;
this.age = age;
}
void introduce() {
System.out.println("Hi, I'm " + name);
}
}
// Usage
Person john = new Person("John", 30);
john.introduce();
System.out.println(Person.species);
这里我们有另一个类,这个类称为 person。 person 有点不同,因为它实际上类似于真实的代码,但也有其他称为 方法 的东西,它只是目前用于所有意图和目的的函数的另一个名称。
哇。
好的,我们刚刚介绍了很多内容,可能还有很多内容让您感到困惑。为了帮助您,我将下一部分分成单独的课程:
oop-camp 4.1:获取原始数据 - 基本数据类型以及幕后发生的事情
在这里,我们将讨论最基本的类型、它们的含义以及编译器运行时它们实际上在幕后做什么
oop 训练营 4.2:进入复合体 - 从基元中创建新数据类型
我们将研究将数据分组为更大、更抽象类型的所有不同方法
oop-camp 4.3:寻找结构-使复合数据类型交互
事实证明,这些较大的化合物类型可以相互作用。让我们看看他们是如何做到的!
oop-camp 4.4:类和对象 2:electric boogaloo
事实证明,类和对象实际上也是一种复合数据类型,谁知道呢?让我们更深入地了解一下。
oop-camp 4.5:状态袋 - 深入了解状态、状态机和自动机理论
我们将了解一些学术和理论知识,但我们应该看看一些概念,这些概念是当我们的数据类型获得新值时所发生的情况的基础。
oop-camp 4.6:建立关系-数据之间的关系
我们将在这里深入探讨实际情况,看看所有类型如何交互,包括基于非类的抽象类型,如接口和部分类
oop-camp 4.7:前进之前的回顾
在一头扎进面向对象编程的蓝海之前,这只是一个简单的总结课程。
今天关于《OOP 训练营类和对象基础知识》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!
win10关闭防火墙提示管理员身份操作怎么办 win10关闭防火墙提示管理员身份操作解决办法
- 上一篇
- win10关闭防火墙提示管理员身份操作怎么办 win10关闭防火墙提示管理员身份操作解决办法
- 下一篇
- 长江存储:从无任何“借壳上市”的意愿
-
- 文章 · java教程 | 1星期前 | map · 并发安全 · 缓存设计 · Java教程 · java optional concurrenthashmap computeIfAbsent Map缓存
- Java computeIfAbsent 缓存初始化实战:少写判断、避开空值和并发坑
- 236浏览 收藏
-
- 文章 · java教程 | 1星期前 | Java · 异步编程 · 后端开发 · CompletableFuture · 接口聚合 · java 结果合并 completablefuture 并行调用 超时兜底
- Java CompletableFuture 多接口聚合完整流程:并行调用、超时兜底和结果合并
- 428浏览 收藏
-
- 文章 · java教程 | 1星期前 | Java · 线程安全 · DateTimeFormatter · 日期处理 · 并发问题 · java 线程安全 日期格式化 threadlocal SimpleDateFormat DateTimeFormatter
- Java SimpleDateFormat 日期偶发错乱怎么办:从共享实例到线程安全一步步排查
- 481浏览 收藏
-
- 文章 · java教程 | 1星期前 | http接口 · httpclient · Java教程 · 接口调试 · 超时处理 · java 接口调用 httpclient 超时控制 状态码 响应体
- Java HttpClient 调接口实战:超时、状态码和响应体这样处理
- 224浏览 收藏
-
- 文章 · java教程 | 1星期前 | 时间处理 · instant · Java教程 · 时区转换 · DateTimeFormatter · java DateTimeFormatter java.time 时区处理 ZoneId INSTANT
- Java 时间与时区处理实战:Instant、ZoneId 和 DateTimeFormatter 怎么配
- 461浏览 收藏
-
- 文章 · java教程 | 1星期前 | Java · Stream · 集合统计 · 分组聚合 · Collectors · java Stream Collectors groupingBy counting summarizingInt
- Java Stream 分组统计实战:groupingBy、counting 和 summarizingInt 怎么用
- 478浏览 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 485次学习
-
- ljg-skills
- ljg-skills 是李继刚开源的 AI 技能与提示词集合,面向大模型使用者整理了一批可复用的 prompt、角色设定和任务技能模板,适合用于学习提示词设计、搭建个人 AI 工作流和沉淀团队常用智能体能力。
- 2384次使用
-
- MELO音乐
- MELO音乐是一站式AI视频与音乐制作助手,对标suno, udio的高品质体验。提供伴奏生成、原创写词、无损导出、哼唱识曲、混音变声等全套音频与短视频编辑工具。无论是流行Kpop、电音说唱、民谣古风、摇滚儿歌还是商用轻音乐,MELO为你免费谱曲,轻松做同款!
- 2194次使用
-
- UniScribe
- UniScribe 是一款 AI 音视频转文字与内容整理工具,支持上传音频、视频文件或粘贴 YouTube 链接,自动生成转写文本、摘要、思维导图和关键问题,并支持多格式导出,适合会议记录、课程学习、访谈整理和内容创作复盘。
- 2148次使用
-
- 剧云
- 剧云是专业中文剧本创作平台,安全稳定运行十余年,集成AI编剧、剧本医生审核、人物小传、剧情关系图、大纲编写、多人协作、Word导入导出、版权管控功能,数据安全防护,轻松高效创作剧本。
- 2356次使用
-
- 万象有声
- 万象有声,一个专为有声创作者打造的新一代智能有声内容创作平台。平台提供专业的智能拆章、智能画本编辑、AI配音、AI生成音效、后期制作、智能对轨、智能审听等有声创作全流程工具,可以帮助创作者高效、低成本创作出引人入胜的有声作品。立即体验,让有声书制作更简单!
- 2318次使用
-
- 矩阵主副对角线快速定位技巧
- 2026-05-31 501浏览
-
- Java多态优化流程代码与行为分发改进
- 2026-05-26 501浏览
-
- JVM 类元数据双亲委派链表深度解析
- 2026-05-21 501浏览
-
- 反射异常处理:InvocationTargetException解析与应用
- 2026-05-16 501浏览
-
- 怎么通过 HTML 的 accesskey 属性为网页中的按钮或链接设置键盘快捷键
- 2026-05-04 501浏览

