>以前、C言語FAQの日本語訳の復刊を報告したkonです。
どうもです。その節はありがとうございました。
>・Javaの文法はひととおり、おさえました。以下は勉強した本等です。
> (1)Java言語プログラミングレッスン(上)(下)
結城浩さんの本ですね。私は未読ですが、プログラミング自体初めての
人向けの本ですよね。
今「読者の声」を見てみたら、
http://www.hyuki.com/jb/jbvoice.html#i4
| また、if文で「または」を表現する場合も他のテキストが
| if (n < 0 || n > 100) と書いているところをこの本は
| if (n < 0 || 100 < n) と書いています。「どう書くのが読んだ時
| わかりやすいか?」ということと「100 < n という書き方もOK」
| ということがこの1行だけで身につきます。
「if (n < 0 || 100 < n) 」がわかりやすいかという点に異論はありますが
それはさておき、「100 < n という書き方もOK」というところから
説明しなきゃいけないものかと… いやその確かに私も大昔BASICをおぼえた頃には
この辺で悩んだような気もしますが(入門書を書いたり新人に教えるときには
気をつけなければいけませんね)。
C++バリバリの方からすれば、そりゃ「簡単すぎ」だろうと思います。
>(3)は私のバイブルである"C言語ポインタ完全制覇"と並びおもしろかったです。
ありがとうございます(_o_)
>いまさら、簡単なプログラムをせこせこ作るのもなあと思ったりして、かといって仕事しな
>がらおぼえていくと後で、デスマにならないかと心配したりしています。つたない文章で申
>し訳ありませんが、よきアドバイスをお願い致します。
アドバイスできるような立場にいるとは思えませんが… (^^;
C++バリバリの方がJavaの文法面などでひっかかるとは思えませんので、
でっかいプログラムをガリガリ書いていけばよろしいのではないでしょうか。
win.drawLine(new Point(x1, y1), new Point(x2, y2));
のような書き方は、GCに慣れないうちはかなり抵抗があるかもしれませんけど。
ひとつ思うのは、言語というより時代的なものだと思うのですが、
オブジェクト指向の設計方針自身が変わってきているということです。
昔々、私がUNIX上でMotifを使ってGUIを構築していたとき、
いろいろなGUI部品を配置するための親となるコンポーネント(用語は
Javaで統一)は、「Manager」というコンポーネントで、これに子として
他のGUIコンポーネントを含めました(Compositeパターン)。
んで、その中で部品を縦横に並べるRowColumnや、座標で並べる
BulletinBoardは、Managerのサブクラスでした。
また、PushButtonはLabelのサブクラスでした。
Javaでは、いろいろなGUI部品を配置するための親となるコンポーネントは
Panelといいますが、その中の部品の並べ方は、Panelを継承したクラスで
制御するのではなく、LayoutMangerというオブジェクトをPanelに対して
横から突っ込む形で制御しています。
また、ButtonはLabelのサブクラスではありません。
コードの再利用のために、既存クラスを継承してオーバーロードでちょっと
いじって、というやり口が流行らなくなってきているのは確かだと思います。
まあSwingでもJButtonの下にBasicArrowButtonがぶらさがったりしては
いるようですが。