- ベストアンサー
Cとjavaの違い
学校でC言語プログラミングを学んでおり,新たにjavaも習うことになったのですが, C言語とjava言語の違いはどのような所なのでしょうか? java言語は「オブジェクト指向」ですが,C言語は何指向なのでしょうか? よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
ここには、とても専門的な方がたくさんおりますので、私みたいな人間が回答するのが恐縮ですが、私なりに。。 コンピュータ言語は以前から発達して色々な言語ができました。C言語はだいぶ昔にできたものです。ですから、昔のコンピュータ(ウィンドウ表示などなく、黒い画面に点々と入力していったもの)で便利に使われていたものと思います。もちろんWindowsAPIなどC言語でWindowsアプリケーションを作成できますが。 しかし、最近ではCの機能では足りなくなりました。よってJavaとかC++が開発され、業務アプリケーション開発ではこれらが主流になっているとおもいます。どう違うかといえば、大規模開発にもこたえられるようオブジェクト指向を取り入れたり、それによりクラスライブラリをたくさん作り、開発が便利になったことでしょう(1プログラマが他人(会社?)の作ったソースをつかえばいいだけで開発する手間が省ける)。 Javaは非常に便利なクラスライブラリがたくさんあり、それを応用すれば色々なアプリケーションが簡単につくれてしまいます。たとえばデータベースに接続する際も一からプログラムをかくのではなく、データベース接続クラスを使えば簡単に接続できてしまいます。他にもWebサーバーの応答クラスなど、今のニーズにあったものはいろいろとクラスが作られています。 C言語となにが違うか?といっても、言語の構造自体は関数主体からクラス主体に変わるだけだとおもいます。C言語も関数がたくさん集まって1つのプログラムになりますよね?Javaも色々なクラスが集まって1つのプログラムになります。クラスというのは、変数と関数(メソッドといいます)の集まりです。感覚的にいうと1つのCのソースコード(変数も関数もある)が、1クラスに該当するといえるかもしれません。そんなに難しいことではないです。感覚的には簡単なものです。 ちなみに、forとかifとかwhileとか配列とか文法事項は全く一緒です。 私自身もアマグラマ?なので、厳密にいうと正解かはわかりませんが、初心者の視点には、近いと思います。がんばってください。
その他の回答 (3)
オブジェクト指向か否かで切り分けるならば… Java、VisualStudio .NET 以降、C++はオブジェクト指向である。 VisualStudo .NET以前、Cはオブジェクト指向ではない。 オブジェクト指向ではない言語は、敢えて時間をかけて習得する必要性は、現在では薄いでしょう。 現在では、オブジェクト指向に基づいた、概要設計・詳細設計のスキル、そして詳細設計を実装するスキル…ってのを習得する方が遙かに役に立つと思います。
お礼
回答、ありがとうございます! オブジェクト指向が主流なのですね
- kamkamkam3
- ベストアンサー率42% (216/514)
再度のお礼は要りません。 そうですね。一つ一つの働きの単位をものとして作成されたものがクラスです。ものといっても抽象的なもので目に見えないですが。一つ一つの働きをまとめてバイトコードになったものがクラスですね。 ひとつ簡単な例をだしますと。 データベースのクラスは、DBに接続する・DBから値を取り出す・DBに値を入れる・DBの値を変更するなどDBに関するほとんどの働きをメソッドとしてもってます。 >一つ一つのクラスが「モノ」として機能する(→オブジェクト指向?)、という感じなのでしょうか 関数はあくまで機能の一つ?であるから「モノ」とは違う、といったところなのかなぁ・・・とか悩んでみたり ↑は全くそのとおりでそのように解釈してもらってけっこうですよ。 では、がんばってください。
- himajin100000
- ベストアンサー率54% (1660/3060)
C/C++/C#/Javaと色々触れていて面白いかも・・・ http://www.ttoyota.com/php/cppintro.php
お礼
URL、ありがとうございます!参考にします
お礼
なるほど、基本的には同じなのですね クラス一つ一つがCのソースコードに該当… 一つ一つのクラスが「モノ」として機能する(→オブジェクト指向?)、という感じなのでしょうか 関数はあくまで機能の一つ?であるから「モノ」とは違う、といったところなのかなぁ・・・とか悩んでみたり 回答、有難う御座いました