こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Cとjavaの違い

学校でC言語プログラミングを学んでおり,新たにjavaも習うことになったのですが,
C言語とjava言語の違いはどのような所なのでしょうか?
java言語は「オブジェクト指向」ですが,C言語は何指向なのでしょうか?

よろしくお願いします。

投稿日時 - 2007-02-20 20:41:37

QNo.2769795

すぐに回答ほしいです

質問者が選んだベストアンサー

ここには、とても専門的な方がたくさんおりますので、私みたいな人間が回答するのが恐縮ですが、私なりに。。

コンピュータ言語は以前から発達して色々な言語ができました。C言語はだいぶ昔にできたものです。ですから、昔のコンピュータ(ウィンドウ表示などなく、黒い画面に点々と入力していったもの)で便利に使われていたものと思います。もちろんWindowsAPIなどC言語でWindowsアプリケーションを作成できますが。

しかし、最近ではCの機能では足りなくなりました。よってJavaとかC++が開発され、業務アプリケーション開発ではこれらが主流になっているとおもいます。どう違うかといえば、大規模開発にもこたえられるようオブジェクト指向を取り入れたり、それによりクラスライブラリをたくさん作り、開発が便利になったことでしょう(1プログラマが他人(会社?)の作ったソースをつかえばいいだけで開発する手間が省ける)。

Javaは非常に便利なクラスライブラリがたくさんあり、それを応用すれば色々なアプリケーションが簡単につくれてしまいます。たとえばデータベースに接続する際も一からプログラムをかくのではなく、データベース接続クラスを使えば簡単に接続できてしまいます。他にもWebサーバーの応答クラスなど、今のニーズにあったものはいろいろとクラスが作られています。

C言語となにが違うか?といっても、言語の構造自体は関数主体からクラス主体に変わるだけだとおもいます。C言語も関数がたくさん集まって1つのプログラムになりますよね?Javaも色々なクラスが集まって1つのプログラムになります。クラスというのは、変数と関数(メソッドといいます)の集まりです。感覚的にいうと1つのCのソースコード(変数も関数もある)が、1クラスに該当するといえるかもしれません。そんなに難しいことではないです。感覚的には簡単なものです。

ちなみに、forとかifとかwhileとか配列とか文法事項は全く一緒です。

私自身もアマグラマ?なので、厳密にいうと正解かはわかりませんが、初心者の視点には、近いと思います。がんばってください。

投稿日時 - 2007-02-20 21:28:56

お礼

なるほど、基本的には同じなのですね
クラス一つ一つがCのソースコードに該当…
一つ一つのクラスが「モノ」として機能する(→オブジェクト指向?)、という感じなのでしょうか
関数はあくまで機能の一つ?であるから「モノ」とは違う、といったところなのかなぁ・・・とか悩んでみたり

回答、有難う御座いました

投稿日時 - 2007-02-20 21:37:36

このQ&Aは役に立ちましたか?

5人が「このQ&Aが役に立った」と投票しています

回答(4)

オブジェクト指向か否かで切り分けるならば…
Java、VisualStudio .NET 以降、C++はオブジェクト指向である。
VisualStudo .NET以前、Cはオブジェクト指向ではない。

オブジェクト指向ではない言語は、敢えて時間をかけて習得する必要性は、現在では薄いでしょう。

現在では、オブジェクト指向に基づいた、概要設計・詳細設計のスキル、そして詳細設計を実装するスキル…ってのを習得する方が遙かに役に立つと思います。

投稿日時 - 2007-02-21 21:40:19

お礼

回答、ありがとうございます!
オブジェクト指向が主流なのですね

投稿日時 - 2007-02-24 14:05:38

ANo.3

再度のお礼は要りません。

そうですね。一つ一つの働きの単位をものとして作成されたものがクラスです。ものといっても抽象的なもので目に見えないですが。一つ一つの働きをまとめてバイトコードになったものがクラスですね。

ひとつ簡単な例をだしますと。

データベースのクラスは、DBに接続する・DBから値を取り出す・DBに値を入れる・DBの値を変更するなどDBに関するほとんどの働きをメソッドとしてもってます。

>一つ一つのクラスが「モノ」として機能する(→オブジェクト指向?)、という感じなのでしょうか
関数はあくまで機能の一つ?であるから「モノ」とは違う、といったところなのかなぁ・・・とか悩んでみたり

↑は全くそのとおりでそのように解釈してもらってけっこうですよ。

では、がんばってください。

投稿日時 - 2007-02-21 00:13:10

C/C++/C#/Javaと色々触れていて面白いかも・・・
http://www.ttoyota.com/php/cppintro.php

投稿日時 - 2007-02-20 23:31:03

お礼

URL、ありがとうございます!参考にします

投稿日時 - 2007-02-21 14:29:15

あなたにオススメの質問