Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# I';I’我对上课感到困惑_C#_Java_Class_Instantiation - Fatal编程技术网

C# I';I’我对上课感到困惑

C# I';I’我对上课感到困惑,c#,java,class,instantiation,C#,Java,Class,Instantiation,我打赌这是任何人都能问到的最愚蠢的问题,但我似乎无法围绕这个话题来思考。我知道类是用来创建对象的(当你实例化它时),但让我困惑的是,“你什么时候知道在程序中创建类是否可行?” 假设您创建了一个程序来收集用户的输入(无论是姓名、数字还是任何其他细节),使用这些细节进行一些计算,然后将其全部存储在本地。它是基本的,但是您是否需要使用类来使程序更平滑/更快或更易于维护 我弄糊涂了吗 编辑:我主要使用Visual Studio和NetBeans IDE之类的程序。这里有一个非常简单/易于理解的教程,可以

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

假设您创建了一个程序来收集用户的输入(无论是姓名、数字还是任何其他细节),使用这些细节进行一些计算,然后将其全部存储在本地。它是基本的,但是您是否需要使用类来使程序更平滑/更快或更易于维护

我弄糊涂了吗


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

这里有一个非常简单/易于理解的教程,可以帮助您学习/理解C,尤其是类也可以查看结构


正如您所说,类是一种结构,允许您描述一个类型,该类型上有属性、方法和事件

在简单的情况下,不使用类可以很容易地解决问题,但在更大、更复杂的项目中,有一个经过适当考虑的对象模型会使事情变得更容易。易于维护、扩展、重用和阅读


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

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

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

您需要使用类来使程序更平滑/更快还是更简单 更易于维护

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

您可以编写类并从中创建对象,因为它们可以很好地映射到您想要解决的问题类型。它们要么是模拟世界上物理事物的真实对象(如人、汽车、银行等),要么是思想的具体化(如个人工厂、账户等)。您选择编写面向对象的代码,因为对象可以很好地模拟您想解决的问题


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

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

1。您何时知道在程序中创建类是否可行?

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

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

计算器
-转换后处理所有输入

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

这样,您的所有代码就不仅仅堆积在一个庞大的Java/C#main()调用中,您还可以独立地关注较小的部分。这些组件之间的交互决定了程序的行为

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

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


同样,类帮助您划分工作,以便以后更容易维护。速度/性能通常不受您将程序划分为类的方式的影响,只要您能够智能地进行划分-这就是面向对象设计的真正艺术性体现的地方:)

对于一个简单的程序,如您的示例,从用户处收集输入(名称、编号、注释),您可以很容易地做到这一点,而无需创建新的类,但C#和Java等语言需要一个静态类来装入主函数这一事实除外。如果您使用像C这样的非面向对象语言,那么不需要类就可以轻松完成

事实上,对于您描述的简单类,创建