タグ付けされた質問 「class」

オブジェクトのタイプを宣言するためのテンプレート。

4
ビジネスオブジェクトクラス設計のこの「完全にパブリック」な考え方に反対する方法
私たちは多くのユニットテストとビジネスオブジェクトのリファクタリングを行っており、クラスの設計について他のピアとは非常に異なる意見を持っているようです。 私がファンではないクラスの例: public class Foo { private string field1; private string field2; private string field3; private string field4; private string field5; public Foo() { } public Foo(string in1, string in2) { field1 = in1; field2 = in2; } public Foo(string in1, string in2, string in3, string in4) { field1 = …

5
OOP言語およびタイプのクラス
プログラミング言語理論では、型は値のセットです。たとえば、「int」型はすべての整数値のセットです。 OOP言語では、クラスはタイプですよね? クラスが複数のメンバーで定義されている場合、例えば class myclass{ int a; double b; } クラスについて話すとき、 「(a,b)どこaint型で、b二重である」、または 「{ (x,y)| xは任意のint、y任意のdoubleです}」? のインスタンスはmyclassどういう意味ですか? 「(a,b)どこaint型で、b二重である」、または メモリ空間を占有し、(必ずしもそうである必要はない、つまり空である可能性があります)を格納できるオブジェクト(x,y)。ここxで、int yはあり、doubleはありますか?

6
かなりの時間、私は静的クラスの代わりにオブジェクトを持つ理由を考えることができません。オブジェクトは私が思うよりも多くの利点がありますか?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 5年前休業。 私はオブジェクトの概念を理解しており、Javaプログラマーとして、OOパラダイムは実際にはかなり自然に生まれてくると感じています。 しかし最近、私は自分自身が考えていることに気づきました。 ちょっと待ってください、実際に静的クラスを使用するよりもオブジェクトを使用することの実際的な利点は何ですか(適切なカプセル化とOOプラクティスで)。 オブジェクトを使用することの2つの利点を考えることができます(どちらも重要で強力です)。 ポリモーフィズム:実行時に動的かつ柔軟に機能を交換できます。また、システムに新しい機能「パーツ」と代替手段を簡単に追加することもできます。たとえばCar、Engineオブジェクトを操作するように設計されたクラスがあり、Carが使用できるシステムに新しいエンジンを追加したい場合、新しいEngineサブクラスを作成して、 このクラスのオブジェクトをオブジェクトに渡すだけで済み Carます。について何かを変更しCarます。そして、実行時にそうすることを決定できます。 「機能を渡す」ことができる:システムの周りにオブジェクトを動的に渡すことができます。 しかし、静的クラスよりもオブジェクトに他の利点はありますか? 多くの場合、新しい「パーツ」をシステムに追加するときは、新しいクラスを作成し、そこからオブジェクトをインスタンス化します。 しかし、最近立ち止まって考えたところ、静的クラスは、オブジェクトを通常使用する多くの場所で、オブジェクトとまったく同じように機能することに気付きました。 たとえば、アプリにファイルの保存/読み込みメカニズムを追加する作業をしています。 オブジェクトを使用すると、コードの呼び出し行は次のようになります。 Thing thing = fileLoader.load(file); 静的クラスを使用すると、次のようになります。 Thing thing = FileLoader.load(file); 違いは何ですか? かなり古いことですが、私は、昔ながらの静的クラスがまったく同じように動作するときに、オブジェクトをインスタンス化する理由を考えることができません。しかし、OOシステムでは、静的クラスはほとんどありません。だから私は何かを逃しているに違いない。 リストした2つのオブジェクト以外のオブジェクトには、他に利点がありますか?説明してください。 編集:明確にします。機能を交換したり、データを渡したりするときに、オブジェクトは非常に便利です。たとえば、メロディーを構成するアプリを作成しました。MelodyGenerator異なる方法でメロディーを作成するいくつかのサブクラスがあり、これらのクラスのオブジェクトは交換可能でした(Strategyパターン)。 メロディーもオブジェクトを渡すことができたので便利です。コードとスケールもそうだった。 しかし、システムの「静的な」部分についてはどうですか?それは渡されません。たとえば、「ファイルを保存する」メカニズムです。静的クラスではなくオブジェクトに実装する必要があるのはなぜですか?

1
PHPでクラスを実装するためのメソッドシグネチャの変更
PHPのGenericsの欠如に対して、静的コード検査で型の一貫性を検出できる適切な回避策はありますか? サブクラスを作成する抽象クラスがあり、メソッドの1つが1つの型のパラメーターの取得から、そのパラメーターのサブクラスであるパラメーターの取得に変更されるように強制します。 abstract class AbstractProcessor { abstract function processItem(Item $item); } class WoodProcessor extends AbstractProcessor { function processItem(WoodItem $item){} } これは、許可されていないメソッドシグネチャを変更するため、PHPでは許可されていません。Javaスタイルのジェネリックスを使用すると、次のようなことができます。 abstract class AbstractProcessor<T> { abstract function processItem(T $item); } class WoodProcessor extends AbstractProcessor<WoodItem> { function processItem(WoodItem $item); } しかし、PHPはこれらをサポートしていません。 この問題のためのグーグル、人々はinstanceof実行時にエラーをチェックするために使用することをお勧めします例えば class WoodProcessor extends AbstractProcessor { function processItem(Item $item){ if …

4
クラスのすべてのオブジェクトを追跡する
私はオブジェクト指向プログラミングが初めてなので、この問題に遭遇し続けます。(私はJavaでプログラミングしています)このような基本的な問題のように思われるので、私はこれについて尋ねるのに少し消極的でしたが、それに関する情報や質問についてここで見つけることはできません。私が(非常に基本的なレベルで)読んだ教科書は、この問題に触れています: 多くの場合、作成されたクラスのすべてのオブジェクトを追跡して、さまざまな目的でそれらを反復処理する必要があります。彼らは私が現在プログラムを書いているように、多くのオブジェクトは他のオブジェクトからのみ参照されます。つまり、それらすべてを参照する配列やコレクションはありません。 これはOOPの非常に基本的な必要性のように思われるので、これを行うにはかなり制度化された簡単な方法があるはずだと思います。クラスのすべてのオブジェクトの個別のリストを保持することは通常の習慣ですか? 静的配列または静的コレクションについて考えました。コンストラクターを介して、作成されたすべての新しいオブジェクトが追加されます。ただし、コンストラクターは継承されないため、これはサブクラスでは機能しません。 この質問には1つの簡単な答えがないかもしれません。誰かがこの問題について少し教えてくれることを願っています。ここで中心的な知識が不足しているような気がします。

4
インターフェースまたはクラスを返す
メソッドがあるとしましょう public List<User> GetBatchOfUsers(IEnumerable<int> userIDs) { List<User> users = new List<User>(); // some database stuff return users; } を返すのではなく、インターフェイス(IListまたはのいずれかIEnumerable)を返す方がよいことを読みましたList。私がそうすることについて聞いたいくつかの議論は、それがデータを隠すことであり、API開発者に後日データの内部表現を変更する柔軟性を与えます。 を返すだけの私の懸念IEnumerableは、ランダムアクセスやCountプロパティなどの機能を失うことです。 IEnumerableメソッドとして動作するための最小限の要件である、メソッドにデータを送信するための最高の柔軟性を消費者に与えるため、パラメーターとしてを受け入れることには意味があることを知っています。 戻り値型のベストプラクティスは何ですか?
9 c#  interfaces  class 

5
明示的なコンストラクターを定義した場合、デフォルトのコンストラクターが生成されないのはなぜですか?
class Employee{ String name; int id; //No explicit constructors } これで、次のステートメントを呼び出すことができます。 Employee e1 = new Employee(); 上記のコードを使用すると、コンパイラーはコンストラクターの定義を提供しますEmployee()。 次のように単一の明示的なコンストラクタを定義した場合: class Employee{ String name; int id; Employee(String aName){ this.name=aName; } } さて、次のステートメントを呼び出せないのはなぜですか。 Employee e2 = new Employee(); コンパイラはの定義を提供する方法を知っていますがEmployee()。 さて、明示的なコンストラクタを定義したのにEmployee(String aName)、なぜデフォルトのコンストラクタを使用できないのですか? また、コンパイラーが明示的なコンストラクターを定義した後でもデフォルトのコンストラクターの使用を許可した場合は、デフォルトのコンストラクターのコードを再利用するのに役立ちます。

1
Pythonでプライベートメソッドを使用する場合
私はクラスを持っていますが、その中のすべてのメソッドはプライベートでなければなりません(フォーム__init__とは別__str__です)。すべてのメソッドを二重下線で表す必要がありますか、それとも悪い習慣と見なされますか?
9 python  class 

7
クラスがロジックのない情報のコレクションのみであることが適切ですか?
私はクラス持っていると言うPersonのインスタンス変数を持っているage、weightとheight、と別のクラスFruitのインスタンス変数を持っているsugarContentとしますtexture。Person一方、クラスは、セッターとゲッター保存メソッドを持たないFruitクラスは、セッターとゲッターの両方があるとのようなロジック・メソッドをcalculateSweetness。Fruitクラスは、クラスよりも実践的なクラスのタイプですPerson。つまり、Personクラスはあまり目的を持っていないようです。Fruitクラスはデータを整理し、実際にはロジックのメソッドを含みますが、データを整理するためだけに存在します。

4
構造とクラスの起源
プログラマーが最初に構造とクラスを使用することを決定したときに、プログラマーが解決しなければならない設計と実装の問題は何ですか? これはいつ起こり、これらのアイデアの先駆者は誰でしたか? 構造とクラスは関連しているため、これは二重の質問です。構造はクラスよりもかなり古いことに気づきました。答えがそれらの両方について別々に話し、いくつかの出典を引用することは素晴らしいことです。

5
Python:「インポート」を使用する意味は何ですか?
この点についてはあまり明確ではありません。独自のモジュールである.pyファイルがたくさんあるとします。 各.pyファイルがそのクラスを使用するときに他のファイルをインポートする必要があるのはなぜですか?それともそうですか?他の言語(Javaなど)は、同じディレクトリ内のクラス/ファイルを参照するときにインポートする必要がないことを確信していたからです。私は間違っているかもしれません。
8 python  modules  class 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.