4

私は現在、C で多くのプログラミングを行っています。私は学部生です。最初に学んだ言語は Java で、今は C を学んでいます。

Java では、クラスを作成し、それはフィールド変数 (状態) と、オブジェクトのインスタンス用の一連のメソッド (または動作) です。

Cには非常に似たものがあります。オブジェクトを含む構造体があり(これは「状態」またはフィールド変数または「属性」であると思います)、オブジェクトを渡して変更できる関数がありますその振る舞い。

CI では、ヘッダー ファイルを介したデータの隠蔽または共有により、同じ種類の「カプセル化」と「継承」の形式を実現できます。

Java と C が非常に異なる方法でこれを達成しようとしていることは完全に理解していますが、C が実際には OOP ではなく手続き型と見なされている理由については混乱しています。

大切なものが欠けている気がします。手続き型プログラミングとは何かがよくわからないのかもしれません。または、計画が間違っているか、C の使用が完全に間違っています。知っておくとよいでしょう。

編集:

各ポスターに入力するのではなく、ここに追加します。本当にありがとうございます。正直なところ、いくつかの重要な概念が欠けていると思いました。皆さんの投稿は理にかなっていて、理解が深まったような気がします。とても迅速に回答していただき、この投稿に返信するために時間を割いていただき、ありがとうございます。

本当にありがとうございます!

4

3 に答える 3

7

手続き型言語 (またはほとんどすべての言語) でオブジェクト指向プログラミングを行うことができますが、自分で配管作業を行う必要があるため、単純に難しくなります。

Java は、カプセル化、継承、ポリモーフィズムなどの OOP の概念を直接サポートするため、(ほとんどの人が) OOP 言語と見なしています。

C は OOP 言語とは見なされません。これは、カプセル化、継承、ポリモーフィズムを行うことができますが、言語はそれを支援するための構造を提供しないためです。

于 2015-12-14T09:44:02.533 に答える