• 締切済み

javaの勉強法

javaを覚えようとして、本を読んでオブジェクト指向をうっすらと理解した所です javaの考え方はわかったのですが、いざプログラムを作るとなると、個々のクラスやメソッド機能を知らないといけないじゃないですか、これって個々のクラスやメソッドを理解するほうがプログラムを作るより先なんじゃないかと思いはじめています(1.3.0の日本語ドキュメントを見ています)。 (確かによく使うクラス、メソッドってあると思うし、全て覚えていなくてもいんじゃないのと思うけど) どう思われますか?

  • Java
  • 回答数6
  • ありがとう数9

みんなの回答

  • yojiskt
  • ベストアンサー率18% (28/150)
回答No.6

はじめまして(^^ 私は専門学校(就学中)でJavaを勉強し、少しはJavaのソースを書けるようになりました。 専門学校に入るまで色々な雑誌、書籍を購入しても、Javaのことが今ひとつ理解できず、勉強が三日坊主になることが多かったです。 就学してわかったことは、基本のない私は当たり前過ぎる基本が理解していない。さらに書籍には当たり前過ぎることを説明しない。この二つが重なって、Javaのソースが一向に理解できませんでした。 書籍には当たり前過ぎることを説明しないのは、著者がJavaの専門家でこの程度は理解しているだろうの見込みで本を書きます、そのため、どうしても著者と読者の間にギャップができ、そのギャップを埋めるのが私の場合、専門学校でした。 また、JavaとCOBOL等の旧高級言語の大きな違いは Javaの場合は、SUNが提供するソースと個人のソースを合体して一つのロード(オブジェクト)を生成するのに対し、 旧高級言語の場合、1から10までソースを記述し、ソース内容がシリアル的であるので、旧高級言語を学習しているとJavaソースの記述が穴ぼこばかりで、そのギャップにも悩まされます。 私のJavaの勉強方法はソースを1から10までパンチングし、オブジェクトを生成し、改造します。パンチングの効果はJavaのソースを英語の慣用句だと思い、文法を考える前にJavaに慣れて、ソースを丸暗記をする。(CD-ROMからコピーしているとこの効果が得られない)。次に改造はif文をswitch文にするとかゴチャゴチャ変更して、覚えた機能を使ったり、改造して不足する機能を補充することで新しい機能を覚えたりする。 最後に意識してほしいのは「日本人は10年間、英語を勉強しても、文法から入るので、身につかないが、外国人は日本に来て、3ヶ月で日本語をマスターする」。用はJavaに慣れるために、自分はどのような手法を選択するか自分で考え、自分できめることです。

  • bakihito
  • ベストアンサー率50% (1/2)
回答No.5

 やっぱり実践あるのみでしょう。  とにかく、プログラムのソースコードを見ることだと思います。解らなくなったら本や文献やリファレンスを見る。  これが一番早く覚えると思います。

noname#30871
noname#30871
回答No.4

>ところで、APIリファレンスはどんなものを使っているんでしょうか。  同じくSunのリファレンスです。JDKバージョンは仕事によって違います。  ところで、エラーメッセージを見ても分からない初心者レベルのエラーは、次のサイトでだいたい解決するでしょう。 http://www.gimlay.org/~javafaq/javafaq.html http://java-house.jp/ml/

cbxcbx
質問者

お礼

サイトにさっそく行ってみました。 本には、載っていない、もやもやとした疑問点も解消でき、これからつまずいた時にも助けてもらえそうです。 ところで、仕事でJavaを使っているなんてすごいですねー。 私も、昔コボルを使っていた、プログラマーだったのですが、 現在は、自作パソコンの組立とセットアップの仕事をしています。 (また、プログラマーに戻る為、やっているのですが) 本当にありがとうございました

noname#30871
noname#30871
回答No.3

>個々のクラスやメソッドを理解するほうがプログラムを作るより先  それは覚えきれるものではないし、覚えきる必要もありません。私は仕事でJavaプログラミングをしていますが、APIリファレンスを頻繁に参照しています。  まずはJavaのプログラムがどんな構造で成っているのかをつかんでください。そのためには、まず書籍などの既存のサンプルソースをよく読んで実行し、流れを観察してください。  次のステップとして、サンプルソースを少し発展させたプログラムを自分で書いてみます。当然、エラーが出ます。ここからが大事です。「うぁ、よくわかんないけどエラーだ」で終わるのではなく、エラーメッセージをすみずみまで読んでその原因を探求します。これによって実力がつきます。その過程で頻繁に使うクラス(Stringなど)の使い方も覚えるでしょう。

cbxcbx
質問者

お礼

>サンプルソースを少し発展させたプログラムを自分で書いてみます。 >エラーメッセージをすみずみまで読んでその原因を探求します。 そうですよね、そうしていた時この質問が浮かんだのですが、原因の探求が 足りなかったのかもしれません。辛抱強くJavaに向かい合ってみます。 ありがとうございました!。

cbxcbx
質問者

補足

ところで、APIリファレンスはどんなものを使っているんでしょうか。 (私は1.3.0の日本語ドキュメントです)

  • takomaru
  • ベストアンサー率15% (3/19)
回答No.2

人によって、Javaの習得方法はいろいろあると思うんですね. そこで、私の場合なんですが、Javaの概要を読んだところで、言葉の渦に飲み込まれるだけだったので、(笑) 実際にテキストにサンプルソースを入力して、実行させるということを繰り返しました。 それだけでも結構、知識はつくものです. 私のお勧めの本は、 IDGジャパン発行の「Javaのからくり2」 ソフトバンクパブリッシング発行の「Javaの落とし穴」 です。 まず、ひたすら、サンプルソースを実際にテキストに書き込んで、実行をさせるまで繰り返してみて。 細かいことは、後々わかってきますよ。

cbxcbx
質問者

お礼

お勧めの本、見てみます。 ありがとうございました!。

回答No.1

メソッドを理解するのは大事だと思うんですが、プログラムを作りながらでも、覚えられると思うんですが。。。 クラス、メソッドだけを理解し、覚えても、実際プログラムが打てるようには? 全体像がつかめてきたら、使えるクラスの量が一気に増えました。 Java は、クラス、メソッドの考え方がどれもほとんど似たような感じなので、それほど構えることはないと思います。 結論としては、プログラムをたくさんうてば、自然とクラスやら、メソッドなんてものはついてくるような気がするんですが。。。 あくまで、私論なので、参考程度にどうぞ。。。

参考URL:
http://www.netjoy.ne.jp/~tuya/index.html
cbxcbx
質問者

お礼

>メソッドを理解するのは大事だと思うんですが、プログラムを作りながらでも、 覚えられると思う そうなのかもしれませんね、実際にプログラムをつくって検証してみます。 ありがとうございました!。

関連するQ&A

  • javaの覚え方

    私はjavaの勉強をしている初心者ですが、困っていることがあります。 数冊のjavaの本を読んで、オブジェクト指向のことや、基本的な事 は理解したつもりですが、自分でプログラムを作成する際、 用意されているクラスだけを使い終わってしまうのです。 これは、本のサンプルをうちこんでいるだけなのです。 一からつくろうとしても、実際サンプルプログラムの ようになるのだからと思ってしまうのですが、どうすれば 自分で作ったと実感できるのでしょうか?

  • オブジェクト指向に関して。

    Javaの解説本を読んでオブジェクト指向プログラミングという物があることをしりました。その本には「オブジェクトはデータとそのデータを扱うための機能を持っている。この機能はメソッドと呼ぶ。クラスは設計図のような物で変数とメソッドから構成されている。設計図を実際に形にした物がインスタンスである。」と書いてありました。私はオブジェクト=クラスのような感じがしたのですが、実際のところオブジェクト=クラスでいいのでしょうか?  また、友人に話したところ、オブジェクト指向はサブルーチンに似ているといっていました。私はプログラミングの知識が全くないのでサブルーチンという物が何なのかわからないのですが、サブルーチンとオブジェクト指向の考え方は違うような気がするのです。友人に説明して納得させるにはどうしたら良いのでしょうか? ぜひ、力を課してください。

  • JAVAのクラスの考え方は・・?

    JAVAの勉強をしていている学生です。 常々思っていたのですが、クラスの考え方がしっくりきてませんヽ(~-~ よく参考書などで書かれていることで 「クラスは設計図のようなもの、オブジェクトはそこから作成した実体」 「鋳型がクラスでどんどん作れるのがインスタンス」 といった話が疑問でならないのです。 というのも・・クラスの設計って、自分自身をフィールドに宣言したりできますよね。。 でそこから生成して、また自分自身のフィールドに生成して・・とか。 インターフェースを実装したクラスで、、、内部クラスを持ったクラスで、、、ジェネリッククラス、、。 となってくると、最初の考え方では、論理的に無理?私の脳内では変換しきれないです(´;ω;) 多分前提となる考え方が間違っていたり、私の想像力が乏しいだけだと思います。 どなたか、「クラスってこう考えればオブジェクト指向が見えてくる」と表現している本やサイトなどご存じないでしょうか。 一朝一夕で理解しようとは思っていませんので、きちんと参考にして理解しようと頑張ります! 「私的には・・」や「あなたが勘違いしている箇所は・・」といったご意見もぜひお聞きしたいです! クラスかオブジェクト指向かどっちかというより、クラスありきでJAVAのオブジェクト指向が本当に理解できると考えています。参考書やWEBを探してみた限りではやっぱり理解できないです(´;ω;) ちなみにC言語を中学生で始め、プログラミングに触れました。

  • Javaにおけるオブジェクト指向とは?

    現在Javaを勉強しております。 以前はC言語を勉強しておたのですが、 JavaとCの違いにおいてJavaの特徴としてオブジェクト指向と習いました。 しかしいまいちこのオブジェクト指向を理解できません。 プログラムを一つのまとまりとして考えるというのはどういうことなのでしょうか? 確かにJavaはC言語とは違いいくつかのプログラムからできている (はず?見当違いだったらすみません) C言語が一つの大きなプログラムでできているとすると、 Javaは細かいプログラムの集合体であると私は考えていました。 この細かいプログラムの集合体というのがオブジェクト指向なのでしょうか? 全くの見当違いだったらすみません。 よろしくお願いします。 

    • ベストアンサー
    • Java
  • Cに慣れてしまった人、どのようにJAVAを克服しましたか?

    JAVAについて質問です。 私はC言語をこの1年間勉強してきました。 そしてC言語のコーディングの仕方に慣れきってしまったせいか、どうしてもJAVAのオブジェクト指向 というものが理解できません。 コーディングも上手くいきません。 クラスやメソッドやインスタンスがどうとかコンストラクタが・・・などの横文字が全然意味が分かりません。 C言語で言うとどれがどこに当たるのか!? とかいう風に置き換えて考えようとしても上手く行きません。 こういう、横文字が理解できて、オブジェクト指向の考え方に慣れる為にはどのようにしたらいいでしょうか? また、C言語からプログラミングに入って、後からJAVAを勉強する場合、どのような点に気をつければ良いでしょうか? また、JAVAの克服法を教えてください。

    • ベストアンサー
    • Java
  • javaで

    フォルダに AA.java, BB.java, CC.java, ‥という不特定多数のクラスがあって メソッドString name()を3つとも実装しているとします。 そのメソッドを呼ぶと、クラスの名前AAやBBが返戻地として返されるとします。いまこのフォルダにあるすべてのクラスの、このメソッドを よぶとします。クラスの数はいくつあるのかはわかりません。このメソッドをよんですべてのクラスの名前を取得するようにしたいです。 このようなプログラムをつくるにはどうすればいいのでしょうか?

  • Javaのメソッドやクラスを分かりやすく解説した本

    アルバイト先で新人社員のJAVA個別レッスンを頼まれました。 理解している、実行できる ・大体の文法 ・詳細設計書(Class名とそれに必要な要素)があればクラスは書ける。(形式に添ってクラスは書ける) ・オブジェクト指向は大体理解できている 出来ないこと 上のできる内容でClassは書けるとありましたが、 ・複数のClassを作るときに、それらに必要な要素を考えた事がありません。 ・複数のclassを作るときに、必要な全要素を出してあげても、どの要素がどのClassに必要か分からない。 ・Classは書けてもその中のメソッドを考えることができない。 ・引数がよく分かっていない。 この出来ないことを出来るようにするためには、 最初に、必要な要素を出してClassを作る練習 次に、Classに必要な要素を自分で考える練習 次に、メソッドの処理を日本語で出すのでJavaに置換える練習 次に、メソッドを最初から自分で書く練習 次に、引数について理解する・・・練習 が必要だと思います。 この部分だけを分かりやすく解説している本がないか探しています。 できれば本が良いのですが、WEBサイトでもかまいません。 どなたか同じように詰まった方がいらっしゃれば教えて下さい。 どうぞよろしくお願いします。

    • ベストアンサー
    • Java
  • Javaの多態性について質問です

    Java初心者です。どなたかお力をお貸しください。 ------------------- class Animal { public void eat() { // 汎用的なコード } } class Dog extends Animal { public void eat() { // 特化したコード } public void bite() { // Dog特有のコード } } ------------------- 上記のクラスについて質問があります。 Animal obj = new Dog(); obj.bite(); このコードがコンパイルエラーになるのは何故でしょうか? コンパイラが参照型のみをチェックし、Animalクラスにbiteメソッドが 無いため、エラーを出すと参考書に書いてありました。 つまり、スーパークラス型の参照変数にサブクラスのインスタンスを格納し、 サブクラス特有のメソッドをコールできないとはどういう意図なんでしょうか? コンパイラのチェックで引っかかるのは分かったのですが、 オブジェクト指向としては、この使い方は推奨されないということでしょうか? (Animalの参照で、Dog特有のメソッドは使わない?) 実際にJavaでプログラムを組むときには、こんな使い方をしないのですか? 有知識者の方、教えて下さい。 私は、オブジェクト指向の多態性の理解が甘いため、こんな質問をしているのだと 思います。申し訳ございません。

    • ベストアンサー
    • Java
  • オブジェクト指向が理解できません 教えてください

    現在Javaを勉強しているのですが、 Javaに限らず最近のプログラムの特徴であるオブジェクト指向がよくわかりません。 C言語も学んでいたので少しは知識はあります。 以下は私の解釈です。 C言語は関数の集まったものがいわゆる私たちが作るプログラムで、 作ったプログラムはそれ単体で機能する。 それに比べてオブジェクト指向を用いたプログラムでは、 オブジェクトからクラスが生成、このクラスが一つのプログラムとなる。 クラスのプログラムをいくつも集めたものが最終的なソフトとなる。 Cだとミスを一か所直すと他のところを直す羽目になるかもしれませんが、 オブジェクト指向においてはミスをオブジェクト単位で修正するので、 他のオブジェクトへの影響度は少ない。 よってオブジェクト指向の方が拡張・修正などでも優れている。 こんな感じに解釈したのですがどうでしょうか? オブジェクト指向では最終的なプログラムソフトはオブジェクトの集合体によって構成されているため、オブジェクト指向=オブジェクト中心の考えと言えるのでしょうか。

  • COBOLの考え方からJavaへ

    今までIBMホスト畑で働いていたので、使用できる言語は COBOLやPL/Iだけでしたが、今後の仕事の展開も考え Javaを習得したいと思っています。 とりあえずJava言語の入門書を終えたので、 次は、以前新人のCOBOL研修用に作成した仕様書を Javaで書きかえてみようと思いたったのですが・・・ できませんでした。。。 COBOLは、MAINルーチンをプログラムの主とし 個々の機能(FILEのREAD処理など)をそれぞれの SUBルーチンで記述するといった構造的な作りになっています。 これをJavaにすると「FileのREAD処理」を1つのクラスとして考え、 「MAINルーチン的」な実行クラスから 「FileのREAD処理」クラスを呼ぶ(継承する)のか? オブジェクト指向とは、もっと別のことではないか? といったように、全然ちんぷんかんぷんな状況です。 みなさん、Javaでプログラムを記述するときは どういったアルゴリズムを考えながら記述しているのでしょうか? 是非ともご教授ください。 また、COBOLには、誰がソースをみてもわかりやすいように 記述するなどの暗黙的な決まり(ネストは3回程度など)があるのですが、 Javaにもあるのでしょうか?

    • ベストアンサー
    • Java