我正在用 Java 开发一个应用程序,它管理银行贷款的数据库。我在应用程序开发方面有一些经验,我有一个可能很愚蠢的问题,但这是我一直在谈论的问题,因为我一直在学习开发语言并且从未得到令人信服的答案。
在我的程序中,我有许多类和方法,我将它们用作通用工具。例如,我有一个 Excel 写作类,一个文件读/写类,一个以各种方式操作字符串的类,一个以我的默认格式显示对话框/消息的类,一个用于特定数学函数的类(如数学)等。
我无法将这些类想象成真实的东西(就像类/对象一样),但它们作为工具箱出现在我的脑海中。这就是我将它们设为静态的原因。以这种方式我写例如
excelWriter.create("C:\temp.xls");
excelWriter.append("mydata1\tmydata2\nmydata3\tmydata4");
excelWriter.close();
而不是
ExcelWriter myExcelWriter;
myExcelWriter.create("C:\temp.xls");
myExcelWriter.append("mydata1\tmydata2\nmydata3\tmydata4");
myExcelWriter.close();
这更适合我,因为我认为工具箱之类的东西一直都在我身边,而且我不需要每次想使用它时都创建一个对象。C++的数学不是同样的情况和静态的吗?我与许多同事和编码朋友讨论过它,他们中的大多数人说我必须创建一个对象,因为这就是面向对象编程的全部内容。
我理解他们在另一种情况下所说的话:在业余时间,我一直在使用 VB.net 开发纸牌游戏。在那里我有游戏、玩家、甲板、手的课程。我在每个班级中制作的物品很多,因为我有很多游戏、玩家、套牌、手牌。它们可以被想象成真实的东西。当您开发游戏时,情况就大不相同了。游戏的开发更加面向对象,因为它包含真实的事物。
我想知道,我在这里是不是大错特错了?我想深入了解 oop 的含义。我还想听听静态类的用途。
谢谢