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

オブジェクト指向プログラミングは、「オブジェクト」を使用したプログラミングパラダイムです。つまり、データフィールドとメソッド、およびそれらの相互作用で構成されるデータ構造です。


20
PHPで複数のクラスを使用してクラスを拡張できますか?
必要な機能を持つクラスをいくつか持っているが、整理のために別々に保存したい場合、クラスを拡張して両方を持たせることはできますか? すなわち class a extends b extends c 編集:私は一度にクラスを拡張する方法を知っていますが、複数の基本クラスを使用してクラスを即座に拡張する方法を探しています-私はこれをPHPで行うことはできませんが、に頼らずにそれを回避する方法があるはずですclass c extends b、class b extends a
150 php  class  oop  extends 

7
StaticクラスとSealedクラスの違い
静的クラスで実装されるクラスはありますか?手段: static class ABC : Anyclass シールドクラスと静的クラスの両方で継承できるクラスはありますか? 手段: static class ABC : AClass {} そして sealed class ABC : AClass {} ある程度間違ってもいいですか。
150 c#  .net  oop  static  sealed 



9
Java MapがCollectionを拡張しないのはなぜですか?
ないことに驚いMap<?,?>たCollection<?>。 それがそのように宣言されていれば、それは意味のあることだと思いました。 public interface Map<K,V> extends Collection<Map.Entry<K,V>> 結局のところ、Map<K,V>はのコレクションMap.Entry<K,V>ですよね。 それがそのように実装されていない理由はありますか? 最も権威のある答えをCletusのおかげで、私はまだ、なぜ、あなたはすでに見ることができた場合に思ったんだけどMap<K,V>としてSet<Map.Entries<K,V>>(経由entrySet())、それだけではなく、そのインタフェースを拡張しません。 a Mapがの場合Collection、要素は何ですか?唯一の合理的な答えは「キーと値のペア」です まさに、interface Map<K,V> extends Set<Map.Entry<K,V>>素晴らしいでしょう! しかし、これは非常に限られた(そして特に有用ではない)Map抽象化を提供します。 しかし、その場合は、なぜentrySetインターフェースによって指定されるのでしょうか。それはどういうわけか有用であるに違いありません(そして私はその立場について議論するのは簡単だと思います!)。 特定のキーがどの値にマップされているかを確認したり、特定のキーのエントリを削除したりすることはできません。 それがすべてであると言っているわけではありませんMap!それは他のすべてのメソッドを保持でき、保持する必要があります(ただしentrySet、現在は冗長です)。
146 java  oop  collections 

6
プライベートvs保護-可視性のグッドプラクティスの懸念[終了]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 2年前休業。 この質問を改善する 私は探していて、理論上の違いを知っています。 パブリック -任意のクラス/関数はメソッド/プロパティにアクセスすることができます。 protected-このクラスとサブクラスだけがメソッド/プロパティにアクセスできます。 プライベート -これだけのクラスはメソッド/プロパティにアクセスすることができます。それも継承されません。 それは問題なく、問題は、それらの間の実際的な違いは何ですか?いつ使用しprivate、いつ使用しprotectedますか?これよりも標準的または許容できる良い習慣はありますか? これまでは、継承とポリモーフィズムの概念を維持するpublicために、外部からアクセスする必要があるもの(コンストラクターやメインクラスの機能など)とprotected内部メソッド(ロジック、ヘルパーメソッドなど)を使用しています。私は正しい軌道に乗っていますか? (この質問は私用ですが、このような質問を見たことがないので、将来の参考のためにも注意してください)。

4
MATLAB OOPは遅いですか、それとも何か問題がありますか?
私が試してるMATLAB OOP私はC ++のロガークラスを模倣し始めると、私はのようなものを行うことができることは素晴らしいことだろうと考え、Stringクラスにすべての私の文字列ヘルパー関数を入れているa + b、a == b、a.find( b )代わりにstrcat( a b )、strcmp( a, b )、strfind( a, b )などの最初の要素を取得します。 問題:減速 私は上記のものを使用して、急激な減速にすぐに気づきました。私はそれを間違っていますか? 私のテストケース これは私が文字列に対して行った簡単なテストです。基本的には文字列を追加し、追加された部分をもう一度削除します。 注:実際のコードでは、このようなStringクラスを実際に記述しないでください。Matlabにはネイティブのstring配列型があり、代わりにそれを使用する必要があります。 classdef String < handle .... properties stringobj = ''; end function o = plus( o, b ) o.stringobj = [ o.stringobj b ]; end function n = …

5
ネストされたクラスとモジュールにネストされたクラスを使用するのはいつですか?
サブクラスとモジュールをいつ使用するかはよく知っていますが、最近では次のようなネストされたクラスが表示されています。 class Foo class Bar # do some useful things end end 同様にモジュールにネストされたクラス: module Baz class Quux # more code end end ドキュメンテーションと記事がまばらであるか、適切な検索用語を模索するほど主題について十分な知識がありませんが、トピックに関する多くの情報を見つけることができないようです。 誰かがそれらのテクニックがなぜ/いつ使用されるかについての例や投稿へのリンクを提供できますか?
144 ruby  oop 

6
Pythonでクラスを設計するにはどうすればよいですか?
私は以前の質問に対して本当に素晴らしい助けをしてきました で、足内の足と足の指を検出するが、これらのソリューションはすべて、一度に1つの測定でしか機能しません。 今私はオフで構成されるデータを持っています: 約30匹の犬; それぞれに24の測定値があります(いくつかのサブグループに分割されます)。 各測定には少なくとも4つの接点(各足に1つ)があり、 各接点は5つの部分に分かれており、 接触時間、位置、総力などのいくつかのパラメータがあります。 明らかに、すべてを1つの大きなオブジェクトに固執してもそれを切り取ることはできないため、現在の大量の関数の代わりにクラスを使用する必要があると考えました。しかし、クラスについてのPythonの学習の章を読みましたが、自分のコード(GitHubリンク)には適用できません。) すべてのデータを毎回処理するのは奇妙だと思う、情報を取得するています。各足の位置がわかったら、これを再度計算する理由はありません。さらに、同じ犬のすべての足を比較して、どの接触がどの足に属するか(前/後ろ、左/右)を判別したいと思います。機能だけを使い続けると、これはめちゃくちゃになります。 それで、私は私のデータ(1匹の犬の圧縮されたデータへのリンク)を賢明な方法で処理できるようにするクラスを作成する方法についてのアドバイスを探しています。
143 python  oop  class-design 

10
Pythonでプロパティ機能を使用する方法についての実例?
@propertyPythonでの使用方法に興味があります。私はpythonのドキュメントを読みました、そして私の意見では、そこでの例は単なるおもちゃのコードです: class C(object): def __init__(self): self._x = None @property def x(self): """I'm the 'x' property.""" return self._x @x.setter def x(self, value): self._x = value @x.deleter def x(self): del self._x _xプロパティデコレータで塗りつぶしたものをラップすることでどのようなメリットが得られるかわかりません。次のように実装しないのはなぜですか。 class C(object): def __init__(self): self.x = None プロパティ機能は、状況によっては役立つ場合があると思います。でもいつ?誰かが実際の例を教えてくれませんか? ありがとう。

20
Javaの引数を持つシングルトン
ウィキペディアのシングルトンの記事を読んでいて、この例に出くわしました。 public class Singleton { // Private constructor prevents instantiation from other classes private Singleton() {} /** * SingletonHolder is loaded on the first execution of Singleton.getInstance() * or the first access to SingletonHolder.INSTANCE, not before. */ private static class SingletonHolder { private static final Singleton INSTANCE = new Singleton(); …

5
Javaのfinalメソッド:それは何を約束しますか?
Javaクラスでは、メソッドをとして定義してfinal、このメソッドがオーバーライドされないようにすることができます。 public class Thingy { public Thingy() { ... } public int operationA() {...} /** this method does @return That and is final. */ public final int getThat() { ...} } それは明らかであり、偶発的な上書きやパフォーマンスから保護するのに役立つかもしれませんが、それは私の質問ではありません。 私の質問は次のとおりです。OOPの観点から、メソッドを定義することによりfinal、クラス設計者はこのメソッドが常に説明どおりまたは暗黙のうちに機能することを約束することを理解しました。しかし、メソッドが何をしているかが単にプロパティを提供するよりも複雑である場合、これは多くの場合、クラスの作成者の影響の外にある可能性があります。 構文上の制約は私には明らかですが、OOPの意味にはどのような意味がありますか?finalこの意味で、ほとんどのクラス作成者は正しく使用していますか? finalメソッドはどのような「契約」を約束しますか?
141 java  oop  final 

12
PHPでの匿名オブジェクトの作成
ご存知のように、JavaScriptで匿名オブジェクトを作成するのは、次のコードのように簡単です。 var object = { p : "value", p1 : [ "john", "johnny" ] }; alert(object.p1[1]); 出力: an alert is raised with value "johnny" これと同じ手法をPHPに適用できますか?PHPで匿名オブジェクトを作成できますか?
141 php  oop  object 


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.