私たちはこのオープンソースプロジェクトを世界中の人々に提供したいと考えています。このチュートリアルの内容をあなたが知っている言語に翻訳するのを手伝ってください。プロパティとメソッドオブジェクト指向プログラミングの最も重要な原則の1つは、内部インタフェースを外部インタフェースから切り離すことです。これを理解するために、開発から離れて、現実の世界に目を向けましょう。通常、私たちが使っているデバイスは非常に複雑です。内部インタフェースを外部インタフェースから切り離すことで、問題なく使うことができます。コーヒーメーカーです。ボタン、ディスプレイやいくつかの穴があるだけです。:)しかし内側は...(修理マニュアルにある図です)多くの構成要素があります。何も知らなくても私たちは使うことができます。コーヒーメーカーはとても信頼性が高いですね。何年も使え、調子が悪い場合にだけ修正に持っていきます。コーヒーメーカーの保護カバーを外すと、使うのが非常に複雑になり(どこを押せばよい?)、危険です(感電するかもしれません)。これから見ていきますが、プログラミングにおいてオブジェクトはコーヒーメーカーのようなものです。内部の詳細を隠すには、保護カバーではなく言語や規則の特別な構文を使っていきます。クラスの他のメソッドからアクセス可能だが、外側からはアクセスできないメソッドやプロパティ。外部のクラスからもアクセス可能なメソッドやプロパティ。ボイラーチューブや発熱体など、は内部インタフェースです。内部インタフェースはオブジェクトが機能するために使われ、その構成要素はお互いに使用されます。ボイラーチューブは発熱体に取り付けられます。コーヒーメーカーの外側からは、誰もそこに届かないよう保護カバーで閉ざされています。内部の詳細は隠されており、アクセスできません。私たちは、外部インタフェースを介してのみその機能を利用できます。したがって、オブジェクトを使用するのに必要なことは、その外部インタフェースを知ることです。内部でどのように動いているか完全に分からないかもしれませんが、問題ありません。ここまでは一般的な前置きでした。3種類のプロパティとメンバがあります。どこからでもアクセス可能です。これらは外部インタフェースになります。今まで、私たちはパブリックなプロパティとメソッドのみを使用していました。クラス内部からのみアクセスできます。これらは内部インタフェース用です。フィールドも存在します。これは、クラス及び、そのクラスを継承したサブクラスの内部からのみアクセス可能であることを意味します。これも内部インタフェースには役立ちます。通常は、継承しているクラスを適切に拡張できるよう、それらにアクセスさせたいため、ある意味ではプライベートよりも広く知られています。実際には非常に便利であるため、エミュレートされています。コーヒーメーカーを作ります。コーヒーメーカーには多くの構成要素がありますが、シンプルさを保つためにモデル化はしません(モデル化することも可能です)。保護(protect)する最初に、単純なコーヒーメーカークラスを作りましょう。外側から簡単に値を取得したり、任意の値に設定できます。誰もゼロより小さくは設定できないようにしたいです。これは言語レベルでは強制されていませんが、このようなプロパティやメソッドは外側からアクセスするべきではない、という慣習があります。ほとんどのプログラマはそれに従っています。waterこれでアクセスが制御されたので、ゼロより小さい値へ設定しようとしても失敗します。プロパティは、読み取り専用にしましょう。作成時にのみ設定し、それ以降変更しないプロパティも時にあります。これはまさにコーヒーメーカーの電力(power)のケースです。この値は決して変わりません。作成する必要があります。