2009-08-26 11 views
18

これらのキーワードと概念は、どのように活かされましたか?それらを現われた力と問題は何でしたか?最初の言語は何を持っていたのですか?public/private/protectedなどのアクセス制御の変更の履歴

は実際に、それはちょうど約public/private/protectedのではなく、いくつかのルール(abstractfinalinternal)を強制するキーワードの全範囲ではありません。

しかし、物事を想定しないでください。あなたがその瞬間に住んでいれば、答えの少なくとも一部を知っていれば答えてください。参考にさせていただきます。

+2

大きな質問です! –

+0

引き続き_interface_の起源が必要です。私はそれがOLE/COMではないことを願っています。 –

+0

この件に関する情報の欠如は本当に驚きです。まあ、少なくとも私は簡単に見つけられないようです。 –

答えて

8

Simula (1967)は、最初のオブジェクト指向言語と見なされ、protected and hiddenという修飾語を持っています。私は公衆がデフォルトであると仮定し、私は覚えていない。 仮想も使用します。 クラスこの新しい、ダウンキャストと参照型の

そして、パベルのおかげで、Simulaのは、最も重要なキーワード(と概念)を導入しました。

Smalltalk (1980)、後でが、はるかに基本的なオブジェクト指向言語では、メッセージへの対応私たち方法を与えました。これは基本的に仮想関数と同じ機能です。メッセージとクラスは後でC(非OO)で模倣され、Windows APIの多態性の動作を提供します。しかし、継承を置き換えるためにはまだ醜いswitch文と関数ポインタが必要です。

最初の使用プロパティは、わかっている限りDelphi(Object Pascal、< 1994)です。

+3

それは本当の起源です。 Simulaの「隠された」とは、今日私たちが「プライベート」と呼んでいたもので、「保護されている」というのはそのものであり、デフォルトは本当に公開されたものです。 Simulaはまた、今日のOOP/OODで使用されている意味でクラス "と"オブジェクト "という用語を導入しました。クラスのための単一継承、仮想メソッドの用語と概念、フィールドアクセスのためのドット表記法、チェックされたダウンキャストとタイプスイッチのアイデアと、クラスが固有の参照アイデンティティーを持つ「参照型」であるという概念(「値型」である他の型とは対照的に)。 –

+1

ああ、私は一般化された入出力ストリームのアイデアもオブジェクトとして忘れていました。ストリームは単なるファイルでなくてもいいというアイデアを忘れてしまったのです - Simulaでは文字列自体がストリームなので(StringBuilder C#で)。 –

+2

...また、オブジェクトをインスタンス化する 'new'キーワードとメソッド内からオブジェクト自体を参照する' this'。 –

0

この種のことは複数の言語デザイナーが「この概念の単純な論理名は何ですか?」と尋ねることから始まります。時間がたつにつれて、ある種の名前が人気を集めています20年を追加すると、ほとんどの人は彼らが見たものに基づいて同じ名前を選ぶことになります。

おそらく、新しい言葉がどのように英語に追加されるかを尋ねることに似ています。

+1

私は実際に名前の選択よりもそのコンセプトにつながったプロセスにもっと興味があります。名前は重要ですが、このコンセプトの必要性を感じさせていた当時の問題を知ることは面白いです。その間に忘れられた素晴らしいプロジェクトがあったのかもしれません。知るか。 –

+1

名前が意味するように、Simulaはプロセスのシミュレーション用に設計された言語であり、元々(Simula I)それは「アクター」を中心としていましたが、設計者は概念がさらに一般化できると感じ、クラス/オブジェクトがSimula 67. –

2

public、private and protected access modifiers C++から来ました。 It seemsは、C++の短命の先駆者である "クラスを持つC"にすでにパブリックとプライベートが存在していました。これはおそらくThe design and Evolution of C++で詳しく説明されています。

私はだと思います。抽象的で最終的なのはJavaのもので、C#のものです。

+0

リンクをありがとう。完全に完了しているわけではありませんが、いくつかの背景があります。 –

0

C + +の場合、私的および公的な保護の原点は、Cクラスを使ったStroustrupの実験よりも、さらに古いシステムのケンブリッジCAPコンピュータからのものです。これは、「The Design of C++の&の設計」のセクション2.10で説明しています。

保護されていると、それは過去が暗かった&私はそれのための良いリファレンスを持っていません。