2

我敢打赌,这是任何人都可能问过的最愚蠢的问题,但我似乎无法围绕这个话题展开思考。我知道一个类用于创建一个对象(当你实例化它时),但令我困惑的是,“你什么时候知道在程序中创建一个类是否可行?”。

假设您创建了一个程序,该程序从用户那里收集输入(无论是名称、数字还是任何其他详细信息),使用这些详细信息进行一些计算,然后将所有信息存储在本地。它是基本的,但是您是否需要使用一个类来使程序更流畅/更快或更易于维护?

我在混淆自己吗?

编辑:我主要使用 Visual Studio 和 NetBeans IDE 等程序。

4

6 回答 6

2

正如您所说,类是一种允许您描述类型的构造,该类型具有属性方法和事件。

在简单的情况下,您可以轻松摆脱不使用类的情况,但在更大、更复杂的项目中,拥有经过深思熟虑的对象模型会使事情变得容易得多。更易于维护、扩展、重用和阅读。

当时可能感觉需要做更多的工作(在大多数情况下可能是这样),但如果您正在创建需要支持的东西,这绝对不是浪费精力。

于 2012-08-21T23:37:54.473 回答
1

在 Java 中,您别无选择:您不能编写类之外的代码。

类是实例的模板。它将状态和行为一起封装到单个软件组件中。您通过创建类的实例来编写程序,这些实例相互作用以实现您的目标。

您是否需要使用一个类来使程序更流畅/更快或更易于维护?

我不能代表 C#,但在 Java 中你别无选择。您要么创建一个在主类中完成所有这些工作的类,要么将其分解为几个类来处理问题的不同部分(例如 I/O、计算、持久性等)。您必须拥有一个或多个类.

您编写类并从中创建对象,因为它们很好地映射到您想要解决的问题类型。它们要么是模拟世界上物理事物的真实对象(例如 Person、Car、Bank 等),要么是思想的具体化(例如 PersonFactory、Account 等)。您选择编写面向对象的代码是因为对象对问题进行建模你想很好地解决。

有些问题适合函数式编程。编写程序来解决问题的方法不止一种。

于 2012-08-21T23:42:27.340 回答
0

这是一个非常简单/易于理解的教程,它将帮助您学习/理解 C#,尤其是类也可以查看 Structs

C# 类教程

于 2012-08-21T23:35:26.183 回答
0

类主要是供我们人类帮助我们组织代码的。它们不一定会使软件在计算机上运行得更快。当我第一次了解类时,我发现对“真实世界”对象建模很有帮助。例如,如果我想编写一个程序来计算几何形状的面积和周长,我会创建一个简单的Shape类来定义进行计算的抽象方法。然后我扩展这个类来创建不同类型的形状,比如CircleSquareTriangle。从类的简单应用入手,通过更多的编程经验,我已经能够逐渐看到其他地方使用类。

于 2012-08-21T23:43:13.643 回答
0

1.你什么时候知道在程序中创建类是否可行?

我想几乎每个回答这个问题的人都会有稍微不同的反应,但通常情况下,您应该使用类来模块化程序的功能。在您的示例中,您说您的程序可能会从用户那里获取输入,使用输入来执行一些计算,并将用户数据和计算结果保存在某处。你可以有以下三个类:

UserInput- 处理键盘输入并将其转换为一些更易于处理的格式

Calculator- 转换后处理所有输入

DataPersistence- 处理从/向磁盘、数据库或任何您需要的读/写。

通过这种方式,您的所有代码不会只是堆积在大量 Java/C# main() 调用中,您可以彼此独立地专注于较小的部分。这些组件之间的交互决定了程序的行为。

2. 它是基本的,但您是否需要使用一个类来使程序更流畅/更快或更易于维护?

由于对象在 Java 或 C# 等语言中的引用方式,类实际上可能最终会增加程序的开销,但与将程序编写在一个巨大的函数中相比,它们使您的代码更容易阅读和修改。这有点类似于将数学教科书分成章节。如果将代数、微积分和微分方程都浓缩到教科书的一章中,那么教科书对于那些想跳到微积分部分的人来说就不是很有用了。添加章节标题的开销可以忽略不计,因为它允许作者/读者专注于书的某些部分。

同样,类可以帮助您划分工作,以便以后更容易维护。速度/性能通常不受你如何将程序划分为类的影响,只要你聪明地做到这一点——这就是面向对象设计的真正艺术表现自己的地方:)

于 2012-08-21T23:44:32.103 回答
0

对于像您的示例这样的简单程序,要从用户那里收集输入(姓名、号码、评论),您可以轻松地做到这一点,而无需创建新类,不包括 C# 和 Java 等语言需要静态类来放置您的里面的主要功能。如果您使用像 C 这样的非面向对象语言,则无需类即可轻松完成。

实际上,对于您描述的简单类,创建该类似乎需要做一些额外的工作(尽管它可能可以忽略不计)。但是,这只是因为您指的是一小组数据。

创建类变得有用的地方是当您拥有许多数据时。该类充当将这些数据组合在一起的一种方式,并可能将其作为一个存储在本地。您还可以将其他相关方法添加到与类成员直接相关的每个类上。

当您的应用程序变得更加复杂时,假设您需要跟踪客户、产品、账单信息(信用卡、PayPal 等)、地址(运送到和账单),这时类在保留每一位方面变得非常有价值将信息组合在一起,以及将每个更大的信息“束”(类别)相互关联起来。

您可能有一个客户,他有一个订单,他有一个账单和一个送货地址。这些类中的每一个本身都有许多字段。但是你可以通过类更容易地将客户的更大概念与目标送货地址联系起来。

至于“你什么时候知道在程序中创建一个类是否可行?”,答案并不总是那么容易,但任何时候你看到自然组合在一起的数据字段(比如地址或产品)描述或帐单信息)。我希望我有一个更具体的答案,但这实际上取决于您正在构建什么,以及您正在使用什么类型的数据。

不,这不是任何人都可以问的最愚蠢的问题!我希望这有助于你的理解。

于 2012-08-21T23:46:14.277 回答