登录
首页 >  文章 >  java教程

OOP 训练营类和对象基础知识

来源:dev.to

时间:2024-12-26 14:25:01 230浏览 收藏

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

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学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:dev.to 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>