1. プログラムでクラスを作成できるかどうかはいつわかりますか?
この質問に答えたほぼすべての人が少し異なる反応を示すと思いますが、通常はクラスを使用してプログラムの機能をモジュール化する必要があります。あなたの例では、プログラムはユーザーから入力を受け取り、入力を使用して計算を実行し、ユーザーデータと計算結果をどこかに保持する可能性があると述べました。次の 3 つのクラスを使用できます。
UserInput
- キーボード入力を処理し、処理しやすい形式に変換します
Calculator
- 変換後にすべての入力を処理します
DataPersistence
- ディスク、データベース、または必要なものからの読み取り/書き込みを処理します。
このようにして、すべてのコードが大規模な Java/C# main() 呼び出し内に積み上げられるだけでなく、互いに独立して小さな部分に集中できます。これらのコンポーネント間の相互作用が、プログラムの動作を決定します。
2.基本的なことですが、プログラムをよりスムーズ/高速にする、またはより保守しやすくするためにクラスを使用する必要がありますか?
クラスは、Java や C# などの言語でオブジェクトがどのように参照されるかにより、実際にはプログラムにオーバーヘッドを追加することになりますが、プログラムが 1 つの巨大な関数内に記述されている場合よりも、コードの読み取りと変更がはるかに簡単になります。これは、数学の教科書を章に分割することに似ています。代数、微積分、および微分方程式がすべてテキスト ブックの 1 つの章に凝縮されている場合、このテキスト ブックは、微積分の部分にスキップしたい人にはあまり役に立ちません。章見出しを追加するオーバーヘッドは、著者/読者が本の特定の部分に集中できるため、無視できます。
同様に、クラスは作業を分割するのに役立ち、後で保守しやすくなります。速度/パフォーマンスは、通常、プログラムをクラスに分割する方法によって影響を受けません。これは、オブジェクト指向設計の真の芸術性が明らかになる場所です:)