2017年02月27日

42歳、パソコン音痴のおっさんが独学でJavaを勉強中 〜 入門レベルは卒業

Javaの勉強をはじめました。いままでの経過です。

Javaの絵本を読みはじめたものの、第四章のクラスの基礎あたりから、だんだんわからなくなっていく。
・この本では説明が足りないため、初心者向けのJavaのウェブサイトを読む。知識は多少ついたものの、もやもやは解消できない。
・分厚い本であればきちんと解説されているはずだと思い、独習Javaを買って読みはじめたものの、いきなり知らない言葉がでてきて、そこでストップ。
やさしいJava入門を買って読みはじめる。この本のおかげで、だいたい理解。ただ、講義風なので、復習するときに不便。
Javaの絵本はうまくまとまっているので、復習のために、あわせて読む。知識が整理できる。

というわけで、手元の本にあるサンプルプログラムくらいであれば読み書きできるようになりました。
何をもって入門レベルなのかわかりませんが、このくらいであれば入門レベルは卒業かな、と。

で、つぎの本を買い足しました。

スラスラわかるJava
帯に「ほかの入門書よりも習得できるレベルが高い」のようなことがあったので、復習をかねて購入。

やさしいJava 活用編
目次を見た感じ、入門書にはない項目ばかりだったので購入。現在、未読。

この先は――。

・サンプルプログラムを、より、すらすら書けるようになるため、サンプルプログラムを書く練習をする
やさしいJava入門の先を読み進める。
・復習、知識の整理という意味で、あわせてスラスラわかるJavaや、Javaの絵本を読む。

これが終われば、やさしいJava 活用編を読みながら、何かつくってみようかな、と。

posted by pugu at 11:47| Comment(0) | TrackBack(0) | ・Javaの勉強

オブジェクト、クラス、インスタンスの関係で悩む

■よくある解説

・クラス・・・設計書。
・オブジェクト・・・設計書もとに作成したもの。

<たい焼き>
・「たい焼き」をつくるには、金属の「型」が必要。
・型に、生地や餡子などを流し込んで、たい焼きをつくる。
・1つの型から「餡子がはいっているふつうのたい焼き」もつくることができれば、「クリームがはいったたい焼き」もつくることもできる。

<クラスとオブジェクトの関係をたい焼きでたとえる>
・たい焼きつくる金属の型が「クラス」。
・できあがった、たい焼きが「オブジェクト」。
・1つの型があれば、さまざまな種類のたい焼きがつくれるのと同様、1つのクラスから、さまざまなオブジェクトをつれる(つくる)。

これが、よく見かける解説です。
理解はできますが、「オブジェクト、クラス、インスタンスの関係」がよくわかりません。

■手元にない本など

「オブジェクト=インスタンス」としているものもあるらしいです。
これだとかんたんなのですが――。

手元にある本によると、この解釈はあまり正しくないようで。
というわけで、手元にある本の解説です。

Javaの絵本 第3版 Javaが好きになる新しい9つの扉

この本では「クラスをインスタンス化したのがオブジェクト」のような書き方をしています。
つまり、「インスタンス」についての記述がないわけですね。
これだとかんたんなのですが、ほかの本を見ると「インスタンス」という言葉もよく使われているのですよねー

やさしいJava入門―講義形式でじっくりマスター

「クラスはオブジェクトの型」
「特定のクラスのインスタンス=オブジェクト」

このようにあります。
これくらいしか書かれていないので、特に「特定の」の部分の解釈がかなり難しい…。
この本のおかげでだいぶん理解が進みましたが、「インスタンス」と「オブジェクト」のちがいは、わたしには理解できませんでした。

スラスラわかるJava

入門レベルからの脱却のため、あらたに買い足した本ですが――。

「クラス・・・特定オブジェクトの定義を構成するオブジェクト」
「インスタンス・・・クラスを元に作成された特定オブジェクト」

練習問題の解答に――。

「オブジェクト・・・オブジェクト指向でプログラムを分割するための単位」
「クラス・・・オブジェクトの設計が書かれているもの」
「インスタンス・・・クラスを元に作成されたもの」

――とあります。

これらを、わたしはつぎのように解釈しました。

<概念>
・近年、プログラムが膨大な量になった。
・管理などの面から、プログラムを分割・管理している。その分割の単位がオブジェクト。

<実際>
・設計書であるクラスから作成されたものがインスタンス(先ほどのたい焼きのたとえ)。

この解釈で正しければ、理解できたことになるのですが――。
そうすると、やさしいJava入門にある文とちがうような気が…。

いずれにしても、よくわからなくてもプログラムは書けそうなので、この辺で考えるのをやめようと思っています。

posted by pugu at 10:07| Comment(0) | TrackBack(0) | ・Javaの勉強

2017年02月16日

42歳、パソコン音痴のおっさんが独学でJavaを勉強中 〜 数日経過、迷走中…

書店をぶらぶらしていたら、つぎの書籍が面陳されていました。

Android & iOS両対応 つくりながら覚えるスマホゲームプログラミング

『基本にカエル英語の本』が10周年で、シリーズ10万部突破も間近なので「スマホのアプリ」をつくりたいなと思って、本を購入。
読み進めていったのですが――。

そのまま読めばよかったのかもしれませんが、Java scriptのところで「もっと詳しく知りたいな」と(これが迷走のはじまり)。

ちょうどそのときに編集者と打ち合わせがあって時間をあわせるために書店にいきました。
すると、つぎの書籍が平積みされていたので、買ったのですが――。

Javaの絵本 第3版 Javaが好きになる新しい9つの扉

読んでいると、なんか、ちがうな、と。
ぐぐったら、な、なんと!

Java と Java scriptは別物で、「メロン」と「メロンパン」くらい、ちがうそうで(笑)

が、この際だからプログラムの勉強をしようと、Javaの勉強をしようと決意、本を読み進めていったのですが――

第四章の「クラス」のところから、もやもやしはじめました(まったく理解できないわけではなく、わかったような、わからないような――)。
もやもやしていても最後まで読む、繰り返し読むと、概要がつかめて理解が進むものなので(いわゆる「まわす」という勉強法)、最後まで読もうとしたのですが、そもそも第三章までは大丈夫で、第四章からもやもやしているのだと気がつきました。
仕方がないのでぐぐってJavaの入門サイトを3つほど読んでみたのですが、やはり、もやもやは解消されず。

何がわからないのか。
一例をあげると――。

クラス、コンストラクタ、インスタンス、オブジェクト、インスタンスメソッド、インスタンス変数、クラスメソッド、クラス変数あたりの概念が、どれを読んでも「たとえ」ばかりで、実際に何をどうすればどういうことが起きるのか、なぜそうなるのかがわからないのですよね。

きちんと書かれているはずの分厚い本を買おうと思い、中古でつぎの本を買いました。

独習Java 第4版

今度は、いきなり「ラップクラス」という単語が登場。
「ああ、この本はある程度の前知識が必要なのか」と。
実際、ラップクラスという単語がでてくるまでは、(上記に書いたように)ほかの本やサイトで知識を得ていたので、さらさら読めましたしね(それまでは、うまくまとまっていると感じました)。

仕方がないので、書店へいって立ち読み。
つぎの本を買いました。

やさしいJava入門―講義形式でじっくりマスター

で、いま読み進めているところです。
ようやく、コンストラクタなどの概念がなんとなくわかったような気がします。

おそらくですが、書籍に足りないものを補完してくれる先生、先輩社員などがいると(学校、新人研修、現場など)、いずれの本でも大丈夫なのかな、と。

いずれにしても、勉強系のものは「着手する→執筆で忙しくなって頓挫、もしくはプライベートで修羅場になったりして(笑)頓挫」を繰り返しているので、今度こそは、ぜったいに習得するぞ、と思っています。
と思っているなか、水面下では執筆の話が進んでいますが。

というより、Java scriptの勉強をしろよ、と(笑)

posted by pugu at 09:52| Comment(0) | TrackBack(0) | ・Javaの勉強