K.Maebashi's BBS

ご自由に書き込んでください。雑談も可。
テスト書き込みの類はテスト用掲示板にどうぞ

[日付順表示] [日付順インデックス] [スレッド順インデックス]

新規投稿 | 開設者ホームページへ戻る | ヘルプ

[185] Re:どうしても,整理できません.
投稿者:(ぱ)
2007/02/20 02:13:25

※この投稿は、現在の裏掲示板に投稿されたものを前橋が転載したものです。 > オブジェクト指向再入門を読ませて頂きました.大変,勉強になりました. ありがとうございます。 > こんな,私が,今,一番悩んでいることは,まさに,関数による再利用性との違いです. そのあたりのことについては、 「オブジェクトに仕事をさせる、ということ」 http://kmaebashi.com/programmer/object/shigoto.html に書いたつもりです。 まとめると、関数による再利用では、関数の呼び出しをまたがって何らかのデータを 保持することができない、ということです。無理に保持しようとすると、 例に出したstrtok()のような困った仕様になってしまいます。 これで回答になっていますでしょうか? ところでお願いですが、 現在、当サイトの掲示板は以下のURLに移転しています。 http://kmaebashi.com/bbs/list.php?boardid=kmaebashibbs ここは裏掲示板でして、ザンボットがどうのZガンダムがどうのといった話ばかり しているのはそのためです。 「オブジェクト指向再入門」のページのリンクが古いままになっていました。すみません。 よろしければ、studentさんの最初の投稿から、全て表の掲示板に移行しようと 思うのですが、よろしいでしょうか? よろしいようでしたら、投稿内容をこちらで貼り直します。
[この投稿を含むスレッドを表示] [この投稿を削除]
[184] どうしても,整理できません.
投稿者:student
2007/02/20 02:13:25

※この投稿は、現在の裏掲示板に投稿されたものを前橋が転載したものです。 オブジェクト指向再入門を読ませて頂きました.大変,勉強になりました. 私は,オブジェクト指向プログラミングを初めて,2ヶ月の初心者であります. こんな,私が,今,一番悩んでいることは,まさに,関数による再利用性との違いです. ここが,どうも,頭の中で整理出来ていません. どうか,教えてください.お願いします.
[この投稿を含むスレッドを表示] [この投稿を削除]
[183] Re:ファイルについて
投稿者:神奈川
2007/02/20 02:13:25

>>しかしLinkedHashsetやSetなどのシンボルが解決できないとというエラーが >>起こってしまいました。 > >LinkedHashSetやSetはjava.utilパッケージにありますから、 >importしなければそうなって当たり前です。 すみません(TOT) ioのパッケージに含まれいるものだと思っていました。 変な勘違いをしていました。何してんだ私・・・ とりあえず解決は、しました。よくよく考えれば当たり前なのに・・
[この投稿を含むスレッドを表示] [この投稿を削除]
[182] Re:ファイルについて
投稿者:(ぱ)
2007/02/20 02:13:25

>しかしLinkedHashsetやSetなどのシンボルが解決できないとというエラーが >起こってしまいました。 LinkedHashSetやSetはjava.utilパッケージにありますから、 importしなければそうなって当たり前です。 SAXなどのパッケージはimportしているわけですから、神奈川さんがimportの 何たるかを知らないとは考えにくいのですが、それでなぜ、java.utilの importを忘れるのかが不思議です。書き忘れるのは別に不思議じゃないですが、 このエラーメッセージを見れば一目瞭然です。 もしかして神奈川さんが、importの何たるかがわかっていなくて、 ネットに落ちてるコードとかを拾い集めてここまでプログラムを書いたのだとすれば、 それはそれでたいしたものではありますが、やっぱり勉強の順番がおかしいように 私には思えます。 >また最後の値{"け","ちち","た"}を配列に格納したいのですが 配列に格納したいのなら、すればよいのでは?
[この投稿を含むスレッドを表示] [この投稿を削除]
[181] Re:ファイルについて
投稿者:神奈川
2007/02/20 02:13:25

>>今度は、txtファイルの読み込みと書き込みについて質問なんですが、 > >APIリファレンスを見ると、InputStreamReaderにはmarkとresetという >メソッドがありますが、markSupportedはfalseのようなので使えませんね。 > >よって、対象とするファイルがよっぽど巨大なのでなければ、 >「最初にいったん全部読み込んでメモリに載せ、いったんclose()し、 > 処理が全部すんだらまとめて書き出す」 >という方法で良いんじゃないでしょうか。 返信送れてしみません。。確かにこの方法しかないようですね。。 これでやってみます。 新たな質問です。 文字列が String[] a={"あい","うえ","お","かか","きき","こ"} String[] b={"あい","け","お","こ","ちち","た"} と二つあるとき,bに対してaの文字列を引いた文字列 だけを取得するためのサンプルプログラム作成しようと思っているのですが この場合は、結果的に{"け","ちち","た"}のみになります。 以下にプログラムを書きました。 しかしLinkedHashsetやSetなどのシンボルが解決できないとというエラーが 起こってしまいました。 もしよろしければ正しく直していただけるとうれしいのですが、 また最後の値{"け","ちち","た"}を配列に格納したいのですが それも含めて宜しくお願いします。 import javax.xml.parsers.*; import org.xml.sax.*; import org.xml.sax.helpers.*; import java.io.*; public class www extends DefaultHandler { public static void main(String[] args) { String[] a = {"あい","うえ","お","かか","きき","こ"} ; String[] b = {"あい","け","お","こ","ちち","た"} ; Set setA = new LinkedHashSet(Arrays.asList(a)); Set setB = new LinkedHashSet(Arrays.asList(b)); setB.removeAll(setA); Iterator it = setB.iterator(); while (it.hasNext()) { System.out.println(it.next()); } }
[この投稿を含むスレッドを表示] [この投稿を削除]
[180] Re:センス・オブ・プログラミングの間違い?
投稿者:(ぱ)
2007/02/20 02:13:25

>はじめまして。 はじめまして。ご指摘ありがとうございます。 >// カーソルの位置の直後の文字を削除 >void backSpace(); > >ですけど >「直後」じゃなくて「直前」ではないでしょうか? おっしゃる通りです。なにしろbackSpace()ですから、カーソルの前の文字が 消えるのが当然です。 ご迷惑をおかけして申し訳ありません。 正誤表に加えておきました。ご指摘ありがとうございました。
[この投稿を含むスレッドを表示] [この投稿を削除]
[179] センス・オブ・プログラミングの間違い?
投稿者:いくら
2007/02/20 02:13:25

はじめまして。 センス・オブ・プログラミング読ませていただいて気になったのですが、 P.278の真ん中あたりの // カーソルの位置の直後の文字を削除 void backSpace(); ですけど 「直後」じゃなくて「直前」ではないでしょうか? サンプルコード試すと直前の文字が消えますし。
[この投稿を含むスレッドを表示] [この投稿を削除]
[178] Re:[業務連絡]サーバの障害について
投稿者:iWA
2007/02/20 02:13:25

>私の記憶では、iWAさんの投稿があったと思うのですが、消えてしまっているのは >そのためです。 ○| ̄|_ >他にも投稿していた方がいらっしゃいましたら、よろしければ再度投稿を >お願いいたします。 さすがにもう一度書けるほど、書いたことを憶えてないです……(^^;
[この投稿を含むスレッドを表示] [この投稿を削除]
[177] [業務連絡]サーバの障害について
投稿者:(ぱ)
2007/02/20 02:13:25

裏掲示板の方には一応アナウンスしましたが、昨晩の19:30頃より、kmaebashi.comが 置いてあるサーバが停止していました。原因はハードディスク障害だそうです。 本日14:00過ぎあたりに復旧したのですが、その際、 「7日の午前1時前後のバックアップデータ」からデータを復元したため、 この掲示板の投稿も、一部消えてしまいました。 私の記憶では、iWAさんの投稿があったと思うのですが、消えてしまっているのは そのためです。 他にも投稿していた方がいらっしゃいましたら、よろしければ再度投稿を お願いいたします。 サーバ障害に関する詳細は雑記帳にでも書きます。
[この投稿を含むスレッドを表示] [この投稿を削除]
[176] Re:ファイルについて
投稿者:(ぱ)
2007/02/20 02:13:25

>今度は、txtファイルの読み込みと書き込みについて質問なんですが、 APIリファレンスを見ると、InputStreamReaderにはmarkとresetという メソッドがありますが、markSupportedはfalseのようなので使えませんね。 よって、対象とするファイルがよっぽど巨大なのでなければ、 「最初にいったん全部読み込んでメモリに載せ、いったんclose()し、  処理が全部すんだらまとめて書き出す」 という方法で良いんじゃないでしょうか。
[この投稿を含むスレッドを表示] [この投稿を削除]
[175] ファイルについて
投稿者:神奈川
2007/02/20 02:13:25

>「飲み会以外では飲まない」という軟弱な断酒中ですが、木曜の晩は飲み会で、 >日付が変わる頃帰宅して風呂に入って、朝の5:00頃目がさめました。風呂の中で。 >というわけで昨晩も帰宅後即寝てしまったので返事が遅れましてすみません。 いえいえ,こちらこそお世話になっているので、ありがとうございます。解決できました。 ふぃよかったです。 件名を変更しました。 今度は、txtファイルの読み込みと書き込みについて質問なんですが、 一つ目の質問です。 ******aaa.txt****** ねこ こねこ いぬ 哺乳類 爬虫類 とかげ ******************* この場合4行目のみ読み取るためにはどうすればよいのでしょうか? ちなみに //文字ストリーム作成 br=new BufferedReader ( new InputStreamReader ( new FileInputStream( "aaa.txt" ), "SJIS" ) ); //読み込み、ついでにreadLine()は、1行ずつ見る。1回目とおれば、1行目2回通れば2行目 String AAA=br.readLine() String BBB=br.readLine() この場合、AAAは、1行目の「ねこ」がはいります。 BBBには、2行目の「こねこ」がはいります。 4回ループを起してから抽出する事は可能ですが、 最初2行目 次4行目 次1行目 を読み取るとなると、readLine()は、よくわからないけど1行目ずつ格納してしまうので 4行目の次に1行目を見るというのは、どうも難しいような気がwします。 何か、行数を指定してその行を読み取るメソッドは、あるでしょうか? 無い場合は、行数を初期化(1行目から)すればいいんでしょうが、どうすればいいのかわかりません・・ 二つ目の質問です。 やりたいことは、書き込みと読み込みを同じファイルから行いたいことです。 それを踏まえた上で、 例えばaaa.txtにたいして最初に1:ネコという書き込みがされ 1ステップ(書き込み)    ******aaa.txt******    1:ねこ    ******************* 2ステップ(1行目読み込み) 3ステップ(書き込み)    ******aaa.txt******    1:ねこ    1-1:こねこ    1-2:いぬ    ******************* 4ステップ(2行目読み込み) 5ステップ(書き込み)    ******aaa.txt******    1:ねこ    1-1:こねこ    1-2:いぬ    1-1-2:哺乳類    1-1-3:爬虫類    1-1-4:とかげ    ******************* 6ステップ(3行目読み込み) 7ステップ(書き込み内容なし) と繰り返し 最後(読み込んだ文字列=null)になって終了 というふうにしたいのです。 書き込んでいる最中に読み込めるのでしょうか? この場合、読み込みの後に別の処理があるのですが、これについては できていて、文字列が入力されると0~複数の文字列が出力される。という感じです。
[この投稿を含むスレッドを表示] [この投稿を削除]
[174] Re:本を買いました
投稿者:(ぱ)
2007/02/20 02:13:25

うわ、こりゃまた思わぬ方から。 ごぶさたしております。 お買い上げいただきありがとうございました。 昨晩の飲み会は行きたかったのですが、[169]で書いたようにその日はちゃんと 寝てなかったので、帰宅してしまいました。 サイン、というか名前を書くぐらいいくらでもしますので、次の機会(どうせ 頻繁にあるでしょう)でお会いしましょう。
[この投稿を含むスレッドを表示] [この投稿を削除]
[173] 本を買いました
投稿者:PZH
2007/02/20 02:13:25

 前橋さん、プログラミングの本は私には難しいのですが、最近だされた本は私でも読めそうでしたので買いました。 今度お会いする機会があった時、著書にサインしてください。
[この投稿を含むスレッドを表示] [この投稿を削除]
[172] Re:データ構造の重要性
投稿者:隠れファン
2007/02/20 02:13:25

>こう考えると、このケースでも多重継承は不要ですねえ。 よく考えてみたら前橋さんのおっしゃる通りでした...。 さすがです。 >Perlは詳しくないですが、PerlからCを呼ぶことぐらいはできるはずなので、 >ラクダ本第2版を今見てみました。perlxstutというキーワードが出てきたので >Googleして見つかったのがこちらです。 > >http://www.kt.rim.or.jp/~kbk/perl5.005/perlxstut.html ありがとうございます。参考になります。 買って読んでいない本がだいぶたまってきたので、 また色々勉強して、その内投稿するかもしれません。 ありがとうございました。 「オブジェクト指向開発講座」を超える本を期待しています。
[この投稿を含むスレッドを表示] [この投稿を削除]
[171] Re:センス・オブ・プログラミング読ませていただきました。
投稿者:(ぱ)
2007/02/20 02:13:25

>はじめまして、前橋さん。 はじめまして。 >『センス・オブ・プログラミング』を読ませていただきました。 >初心者の私にとって、とても示唆に富む面白い本でした。 ありがとうございます。大変励みになりますです (_o_) …が、これ以上何を書いてよいかわからないので、大変嬉しいのですが こういう投稿への返答には困るのでした。f(^^;;
[この投稿を含むスレッドを表示] [この投稿を削除]
[170] Re:データ構造の重要性
投稿者:(ぱ)
2007/02/20 02:13:25

>1)インターフェース継承による多重継承によりWINDOWを表す方法 >2)集約によりWINDOWをもつ方法 >の2つでは、若干違いがあると思います。 >クラスのクライアント側から見た場合、2)の場合、あくまでも外面は >TREE_NODEであり、WINDOWではない訳です。 ちょっと今まで出た案を整理しますね。 案1)多重継承。WINDOWがSCREEN_OBJECTとTREE_NODEを多重継承する。 案2)インタフェースと委譲を使う。WINDOWはSCREEN_OBJECTを継承し、  TREE_NODEインタフェースを実装する。  TREE_NODEの実装はTREE_NODE_IMPLクラスにあって、WINDOWは  TREE_NODE_IMPLへの参照を保持し、add_child()などのメソッドを  そっちに委譲する。 案3)コレクションクラスTREEを作り、そのTREE_NODEがWINDOWへの  参照を保持するようにする。 案3)は、私がうっかりこれでいいかと思っちゃった案ですが、WINDOWの場合は ダメです。たとえばWINDOWのrepaint()メソッドが呼び出されたとき、 WINDOWは自分の子を再帰的にrepaint()しなければなりません。 つまり、「外から見て木構造に見える」のではダメで、 WINDOW自身が自分の子を知っていないといけないわけで、 TREE_NODEからWINDOWに参照を持つような構造では困ります。 案2)ですが、この方法で、外から見れば多重継承と実質同じことができますが、 考えてみれば、外から見て、WINDOWがTREE_NODEに見えて嬉しいことは なさそうなので、わざわざinterfaceを使う必要はなさそうです。 つまり委譲だけでよいと。で、何に委譲するかですが、TREE_NODE_IMPLなんぞ 作らなくても、ArrayListで良いような… こう考えると、このケースでも多重継承は不要ですねえ。 >ところで、知っていたら教えてほしいのですが、PerlとCのリンク方法で >詳しいページとか書籍とかあったら教えてほしいです。 >つまりCのメモリ上にPerlで処理したデータを取得したいのです >(外部ファイルとか、ソケットなどを使わずに)。 Perlは詳しくないですが、PerlからCを呼ぶことぐらいはできるはずなので、 ラクダ本第2版を今見てみました。perlxstutというキーワードが出てきたので Googleして見つかったのがこちらです。 http://www.kt.rim.or.jp/~kbk/perl5.005/perlxstut.html
[この投稿を含むスレッドを表示] [この投稿を削除]
[169] Re:配列で問題が・・
投稿者:(ぱ)
2007/02/20 02:13:25

「飲み会以外では飲まない」という軟弱な断酒中ですが、木曜の晩は飲み会で、 日付が変わる頃帰宅して風呂に入って、朝の5:00頃目がさめました。風呂の中で。 というわけで昨晩も帰宅後即寝てしまったので返事が遅れましてすみません。 # ていうか他のどなたかが答えてくれてもいいような… >ここでは、真となるファイル名のみをtopfnameの配列に格納したいのですが >配列の長さも真となるファイルの個数になるようにしたい。 >現在の状態だと、topfnameのサイズを「10」と定義しているので、これをなんとか >真となるファイルの個数をサイズにしたいのですが、どのようにすればよいでしょうか? Javaの配列は拡張できないので、java.util.ArrayListクラスあたりを 使えばよいでしょう。 で、最終的に配列が欲しければ、 String[] s = (String[])arrayList.toArray(new String[0]); で変換します。 このへんのことは「Java謎+落とし穴徹底解明」のp.329あたりに書いてあります。
[この投稿を含むスレッドを表示] [この投稿を削除]
[168] センス・オブ・プログラミング読ませていただきました。
投稿者:shun
2007/02/20 02:13:25

はじめまして、前橋さん。 『センス・オブ・プログラミング』を読ませていただきました。 初心者の私にとって、とても示唆に富む面白い本でした。 これからもがんばってください。 では。
[この投稿を含むスレッドを表示] [この投稿を削除]
[167] 配列で問題が・・
投稿者:神奈川
2007/02/20 02:13:25

ツリーがあまりに長くなってしまったので新しく投稿させていただきました。 現在,配列の格納の仕方で迷っています。 下にプログラムを表記します。 import javax.xml.parsers.*; import org.xml.sax.*; import org.xml.sax.helpers.*; import java.io.*; public class Q extends DefaultHandler { public static void main(String[] argv) { BufferedReader br = null; String fname; int l=0; int k=0; String[] topfname=new String[10]; //キーワードとなる文字列 String[] r={"空"}; try { br = new BufferedReader ( new InputStreamReader ( new FileInputStream( "fname1.txt" ), "SJIS" ) ); //ここでfname1.txtに表記されているファイル名を順番(1行ずつ)に抽出 while( ( fname = br.readLine() )! = null) {              //XML検索で抽出プログラムを呼び出し KnowledgeExtract myKnowledgeExtract=new KnowledgeExtract();              //ファイル名とキーワードを送り,戻り値として真偽を取得 boolean xxx=myKnowledgeExtract.Ext(fname,r) ; System.out.println(xxx+" "+"top:"+fname); //ここが問題点・・       if(xxx){topfname[l]=fname;l++;}else{} } } catch( Exception ex ) { ex.printStackTrace(); } //truuになったファイル名を表示 for (int i=0; i < topfname.length ; i++) System.out.println("topfname:"+topfname[i]); } ここでは、真となるファイル名のみをtopfnameの配列に格納したいのですが 配列の長さも真となるファイルの個数になるようにしたい。 現在の状態だと、topfnameのサイズを「10」と定義しているので、これをなんとか 真となるファイルの個数をサイズにしたいのですが、どのようにすればよいでしょうか?
[この投稿を含むスレッドを表示] [この投稿を削除]
[166] Re:データ構造の重要性
投稿者:隠れファン
2007/02/20 02:13:25

>MAYERさんのはこっちですね。品切れ、中古もなしですねえ… 手に入らないとなると余計にほしくなります。 いろいろと探してみます...。 >>>一瞬納得しそうになりますが、TREE_NODEが、その要素への参照を持てば >>>済む話ですよね。EiffelにはGenericsがあるわけですし。 > >>委譲が面倒でなければ前橋さんのやり方の方が柔軟性ありそうですね。 > >うむむ。私が書いたやり方は、実は普通にコレクションクラスライブラリに >オブジェクトを突っ込む方の意味のつもりでしたが、WINDOWは本質的に >親子関係を持つわけですからadd_child()とかはWINDOW側に付くべきですよね。 ># ていうかWINDOW自身が自分の子を知らないと困るわけで… ># 今回いろいろぼけてました。 > >てなわけでinterfaceにして委譲することになるわけですが、 >面倒だという意見もあるでしょう。 コレクションライブラリにオブジェクトを突っ込むということで Genericsがあるという意味がやっと分かりました。 しかし自分で書いておいて後からよく考えてみると、 1)インターフェース継承による多重継承によりWINDOWを表す方法 2)集約によりWINDOWをもつ方法 の2つでは、若干違いがあると思います。 クラスのクライアント側から見た場合、2)の場合、あくまでも外面は TREE_NODEであり、WINDOWではない訳です。 クライアントクラスに渡す場合、WINDOWとして処理したい場合でも クライアントは、TREE_NODEとして受け取らなくてはならないからです。 TREE_NODEからGetterでWINDOWを取り出し、渡すという方法もありますが、 あまり気楽に渡したのでは参照を保持する意味がありません。 1)と2)は機能的には同じですが、外面という意味では違いそうです。 恐らく一般的に、実装継承と比較すると集約の方が柔軟性あるということですね。 前橋さんのコレクションクラスを利用する方法は一番シンプルだと 思いますが、前橋さん自身がおっしゃってるように、真面目に考えると 本来WINDOWクラス自身に持たせたい機能を他で持つのはあまり 好ましくないかもしれません。 >>テストケースを書く前に決まっているとすると、結局は初めにUMLありき >>なので、テストケース自体単なる動作チェックもしくは、 >>後でリファクタリングをするのだけが目的ということになり、 >>あまりおいしくはなさそうです。 > >うーん、UMLで言えば、クラス図よりは後だけどシーケンス図よりは前というか。 >また、いつでも気楽に自動テストができるなら、それだけでもおいしいと思います。 確かにそうかもしれません。使い方次第ですかね? ところで、知っていたら教えてほしいのですが、PerlとCのリンク方法で 詳しいページとか書籍とかあったら教えてほしいです。 つまりCのメモリ上にPerlで処理したデータを取得したいのです (外部ファイルとか、ソケットなどを使わずに)。 前橋さんに聞くのはどうかとも思いましたが、特にCのプログラミングのことなら 知らないことないというイメージだったので...。 もし知っていたらで結構です。
[この投稿を含むスレッドを表示] [この投稿を削除]
[165] Re:XMLファイルを検索
投稿者:神奈川
2007/02/20 02:13:25

ありがとうございます。。できました。また基本的な質問だったかもしれません 11月27日に投稿してから5日たちました。 最初は、javaなんて聞いた事がある程度だったんですが、 ここまでプログラムを完成できるように指導してくださって有難うございます。 以前(ぱ)さんがお話していた。 引数をキーワード及びファイル名にして 戻り値の型をbooleanにして真偽を返す事に成功しました。
[この投稿を含むスレッドを表示] [この投稿を削除]
[164] Re:XMLファイルを検索
投稿者:(ぱ)
2007/02/20 02:13:25

>この場合return文のsyutokusuとkeyが認識せず、 >どのようにすればsyutokusuとkeyを認識し返せるのでしょうか? 変数のスコープ(見える範囲)は、その宣言を囲む最小のブロック({}で囲まれた範囲)で 終わってしまうので、syutokusuとkeyの宣言をtryのブロックの外に出せばよいです。
[この投稿を含むスレッドを表示] [この投稿を削除]
[163] Re:データ構造の重要性
投稿者:(ぱ)
2007/02/20 02:13:25

>私が間違っているのかもしれませんが、恐らく同一な書名なのですが、 >バートランド・マイヤーさんのではありません。 うわわ、すみません、うっかりしてました。 MAYERさんのはこっちですね。品切れ、中古もなしですねえ… http://www.amazon.co.jp/exec/obidos/ASIN/4756100503/qid=1101915980/sr=1-38/ref=sr_1_2_38/249-6600035-2383509 >>一瞬納得しそうになりますが、TREE_NODEが、その要素への参照を持てば >>済む話ですよね。EiffelにはGenericsがあるわけですし。 >委譲が面倒でなければ前橋さんのやり方の方が柔軟性ありそうですね。 うむむ。私が書いたやり方は、実は普通にコレクションクラスライブラリに オブジェクトを突っ込む方の意味のつもりでしたが、WINDOWは本質的に 親子関係を持つわけですからadd_child()とかはWINDOW側に付くべきですよね。 # ていうかWINDOW自身が自分の子を知らないと困るわけで… # 今回いろいろぼけてました。 てなわけでinterfaceにして委譲することになるわけですが、 面倒だという意見もあるでしょう。 >テストケースを書く前に決まっているとすると、結局は初めにUMLありき >なので、テストケース自体単なる動作チェックもしくは、 >後でリファクタリングをするのだけが目的ということになり、 >あまりおいしくはなさそうです。 うーん、UMLで言えば、クラス図よりは後だけどシーケンス図よりは前というか。 また、いつでも気楽に自動テストができるなら、それだけでもおいしいと思います。
[この投稿を含むスレッドを表示] [この投稿を削除]
[162] Re:XMLファイルを検索
投稿者:神奈川
2007/02/20 02:13:25

>同じ要領でelementlistからelementのElementを取り出して、そこからさらに >getElementsByTagName()を呼び出せば、elementの子のpretestを取り出すことが >できるでしょう。 (ぱ)さん!!!やりました!!何とか動きました~(^o^)v 有難うございます。keyさんも有難うございます。 後は、戻り値として真偽をbooleanに返すだけだす。。 しかしちょっとここで問題が起こりましたです。。 例えば下に自作で創った簡単なサンプルプログラムを記述します。 class T {    public boolean tyu(int h) {      try {         int syutokusu,key;         syutokusu=2;         key=h;         System.out.println(syutokusu);        }      catch (Exception e)         {         e.printStackTrace();         }      return (syutokusu==key);                  }      } この場合return文のsyutokusuとkeyが認識せず、 どのようにすればsyutokusuとkeyを認識し返せるのでしょうか? try文の内部で処理した(定義した方や変数は使えないのかな??) なんかまた間違えてるのかな?
[この投稿を含むスレッドを表示] [この投稿を削除]
[161] Re:データ構造の重要性
投稿者:隠れファン
2007/02/20 02:13:25

>うわ、絶版でしたか。知りませんでした。 > ># amazonで中古品が買えるようではありますが。 >http://www.amazon.co.jp/exec/obidos/tg/detail/offer-listing/-/4274075400/all/ref=sdp_srli_u/249-6600035-2383509 ご紹介ありがとうございます。ページ拝見しました。 私が間違っているのかもしれませんが、恐らく同一な書名なのですが、 バートランド・マイヤーさんのではありません。 上記の本は、日本人が書いた本だと思います。 中古品とかで色々探してみます...。 >インタフェースの多重継承はよく使いますよね。 Javaのイメージで話してたので勘違いしていました。 私が言いたかったのは実装継承による多重継承のことでした。 確かにインターフェースの多重継承は必要ですね。 >継承関係は、スーパークラスの分類とも言えますから、複数の軸について >分類したければ多重継承になる…という考え方もありますが、 >それをやるとクラスの数が掛け算で増えていくので実用的ではないと私は思います。 なるほど...。難しいですね。 >「オブジェクト指向入門」では、階層構造を持てるWINDOWが、 >SCREEN_OBJECTとTREEを多重継承するという例が出ています(このTREEは、 >TREE_NODEと呼ぶべきだと思う)。 >一瞬納得しそうになりますが、TREE_NODEが、その要素への参照を持てば >済む話ですよね。EiffelにはGenericsがあるわけですし。 委譲が面倒でなければ前橋さんのやり方の方が柔軟性ありそうですね。 私は1つのクラスに複数の役割を持たせるのはあまり好きではありません。 ただし本に載っているサンプルは実装を簡単にするため (あるいは、インターフェースの多重継承の説明のため) なのかもしれないですね。 >テストファーストって、設計の前にテストケースを書くということではなく、 >実装の前にテストケースを書くのでは。メソッドの引数など細かいところは >テストケースを書きながら詰めていく面もあるでしょうけど、 >クラス間の関係のような重要な点は、テストケースを書く前に決まっていると思います。 確かに実装の前にテストケースを書くのだと思うのですが、 テストケースを色々書いていく内に必要なクラスと不要なクラスが 浮かび上がってきてクラスの関係が導きだせるという感じだったと思います。 テストケースを書く前に決まっているとすると、結局は初めにUMLありき なので、テストケース自体単なる動作チェックもしくは、 後でリファクタリングをするのだけが目的ということになり、 あまりおいしくはなさそうです。 ># テストファースト、良いと思うんですが、現場ではなかなか。 ># 私の場合、「使用例」として、Wordでせこせこサンプルコードを書いて、 ># レビューを通してから若いのに実装してもらうことが多いような。 私は仕事では数値計算関係のプログラムを作成することが多く、 テストケースを作成しにくいです(つまりテストケース自体のテストをしないと いけないので)。 ただ無理にでも使っていかないと、結局使う機会がなく勉強にならないので なかなか難しいです。 前橋さんは若い人に実装してもらえるのはいいですね。 私の場合、小さいチームなのでそこまではいきません。 以前別の部署の後輩にやってもらったら余計仕事が遅くなりました。 やはり上司はブルックスの法則を理解していないのだと思いました。 最近「人月の神話」を購入して、XPの考え方の基になったという印象が あります。XPの歴史とか知らないので何とも言えないですが。 前橋さんは、他の人に仕事を手伝ってもらったら余計遅くなったこと ありませんか?
[この投稿を含むスレッドを表示] [この投稿を削除]
[160] Re:溝
投稿者:(ぱ)
2007/02/20 02:13:25

>ちなみに、買った帰りにぺらぺらめくって眺めていたんですが、第3章の扉絵を見た瞬間 >吹き出してしまいました。・・・電車の中で。 > ># 本筋と関係ない話ですみません。 本筋とは関係ないんでしょうが、ここに反応していただけるとムチャクチャ嬉しいです。 かなり狙って描いたので w >「なぜオブジェクト指向が生まれたのか」という経緯を、自分の中で追体験するような >形で学ばないと、そのありがたみもわからないのかな、などと、最近思ったりもします。 そう思います。そういう意味じゃ、BASICなどの経験も無駄ではなかったかも。
[この投稿を含むスレッドを表示] [この投稿を削除]
[159] Re:データ構造の重要性
投稿者:(ぱ)
2007/02/20 02:13:25

>私はオブジェクト指向勉強中の身なので色々勉強はしていて、 >バートランド・マイヤーさんの「オブジェクト指向入門」も >絶版のため結局買えてません。英語は面倒ですし...。 うわ、絶版でしたか。知りませんでした。 # amazonで中古品が買えるようではありますが。 http://www.amazon.co.jp/exec/obidos/tg/detail/offer-listing/-/4274075400/all/ref=sdp_srli_u/249-6600035-2383509 >私はartonさんと前橋さんの本が気に入っています。 >「C言語ポインタ完全制覇」でCに開眼したので。 ありがとうございます (_o_) >ところで、多重継承って使ったことないのですが必要な機能なのでしょうか? >使う目的が分かりません。 インタフェースの多重継承はよく使いますよね。 継承関係は、スーパークラスの分類とも言えますから、複数の軸について 分類したければ多重継承になる…という考え方もありますが、 それをやるとクラスの数が掛け算で増えていくので実用的ではないと私は思います。 「オブジェクト指向入門」では、階層構造を持てるWINDOWが、 SCREEN_OBJECTとTREEを多重継承するという例が出ています(このTREEは、 TREE_NODEと呼ぶべきだと思う)。 一瞬納得しそうになりますが、TREE_NODEが、その要素への参照を持てば 済む話ですよね。EiffelにはGenericsがあるわけですし。 >テストケースを書くことで本当にクラスの設計ができるのでしょうか? >クラスの設計って経験がものをいうというイメージだったのですが。 テストファーストって、設計の前にテストケースを書くということではなく、 実装の前にテストケースを書くのでは。メソッドの引数など細かいところは テストケースを書きながら詰めていく面もあるでしょうけど、 クラス間の関係のような重要な点は、テストケースを書く前に決まっていると思います。 # テストファースト、良いと思うんですが、現場ではなかなか。 # 私の場合、「使用例」として、Wordでせこせこサンプルコードを書いて、 # レビューを通してから若いのに実装してもらうことが多いような。
[この投稿を含むスレッドを表示] [この投稿を削除]
[158] Re:XMLファイルを検索
投稿者:(ぱ)
2007/02/20 02:13:25

>>>Elementを取り出すとは、何でしょう? … >Element element = (Element)pretestlist.item(i); >これは、item(i)⇒要素を順番に取得していくという意味ではないかとお思います つまりここでpretestの要素(Elementオブジェクト)が取り出せているわけですよね。 getElementsByTagName()はElementのメソッドです。 前回の神奈川さんのプログラムは、NodeListのgetElementsByTagName()を 呼ぼうとしていて、NodeListにそんなメソッドはないのでエラーになっていたわけです。 同じ要領でelementlistからelementのElementを取り出して、そこからさらに getElementsByTagName()を呼び出せば、elementの子のpretestを取り出すことが できるでしょう。 # ElementはJavaの(DOMの)クラスで、elementは神奈川さんが書いているXMLの # 要素名です。念のため。
[この投稿を含むスレッドを表示] [この投稿を削除]
[157] Re:溝
投稿者:kei
2007/02/20 02:13:25

>仮にAPIリファレンスを見なくても、getElementByTagName()がElementの >メソッドである、ということは、神奈川さん自身が投稿したソースを見れば >わかることですし。 あー。。 スレッド別表示にして見ていたので、下の方にひょろっとあった[145]の投稿に 気づかず、それを読まずに投稿してしまいました。(気付けよ、自分) ・・・と言うか神奈川さん、すでに答えをご自分で(ほぼ)書いていたんですね。。 >神奈川さんが越えるべきハードルはたくさんありそうです。 実は、僕もそれを感じたので >>神奈川さんが抱えている問題は複数あるように感じます。 って書いちゃいました、なんだか偉そうに。 >プログラムを書くには、まず自分が「何をしたいのか」を日本語でちゃんと >説明できなければならない、なんてことは「センス・オブ・プログラミング!」にも >書きましたけど。 実は、「センス・オブ・プログラミング!」は購入済みなんですが、忙しくて ほとんど読めていなかったりします。すみません。せっかく10月29日に買ったのに! ちなみに、買った帰りにぺらぺらめくって眺めていたんですが、第3章の扉絵を見た瞬間 吹き出してしまいました。・・・電車の中で。 # 本筋と関係ない話ですみません。 >今時の入門者は、「梯子が外された」状態にあるのかもしれません。 それは、良く感じます。 僕は運良く、プログラムを始めた時期に前橋さんの本で学ぶことが出来たわけですが、 同時期にプログラムを始めた人間は、研修でいきなり「StrutsでWebアプリケーション」 だとか、そんなことを勉強させられたりしたようです。 そう言えば、「オブジェクト指向で全ては抽象化されているんだから、細かい アルゴリズムなんて覚える必要は無い!」とか、トンでもなことを言い出している 上司もいました。 「なぜオブジェクト指向が生まれたのか」という経緯を、自分の中で追体験するような 形で学ばないと、そのありがたみもわからないのかな、などと、最近思ったりもします。 で、「センス・オブ・プログラミング!」には、きっとそんなことが書かれているのかなぁ などと妄想してみたり(笑) # うーん、「溝」という話題とは微妙にそれてしまったような。。
[この投稿を含むスレッドを表示] [この投稿を削除]
[156] Re:データ構造の重要性
投稿者:隠れファン
2007/02/20 02:13:25

隠れファンです。 返信ありがとうございます。 >これはその通りでしょう。でもまあ、それで細部は隠せても、 >大まかなところはオブジェクト間の関係のような形で見えてしまいますし。 >多重度の設計をしくじって拡張の際にはまる、なんてことは多いですよね。 ># Hogeに対してPiyoはひとつでよいはずだったのに、今度の機能拡張では ># n個にしなきゃいけなくなった。HogeのgetPiyo()には引数ないぞ。どうしてくれよう。 私は設計に失敗した場合、その部分を作り直してしまった方が早いと思っています (もちろん関連が多すぎるなど、そうできない場合も多いと思います)。 例えばクラスをラップしていって機能を追加してうまくごまかして 無理やりつじつま合わせようとしてもどんどん泥沼にはまりそうです。 >オブジェクト指向のバイブルは、私にとってはMAYERさんの「オブジェクト指向入門」 >でした。第2版は(買いはしたものの)まるで読めてませんけど。 ># なにせ英語なので… (^^;; > >継承がらみの議論では(特に多重継承)首をひねるところもありますが、 >今でも名著だと思います。 私はオブジェクト指向勉強中の身なので色々勉強はしていて、 バートランド・マイヤーさんの「オブジェクト指向入門」も 絶版のため結局買えてません。英語は面倒ですし...。 ご存知だと思いますが、オブジェクト指向の本では 「憂鬱なプログラマのためのオブジェクト指向講座」が売れているみたいですが 今ではほとんど役に立たないと思っています。 最近購入した「アジャイルソフトウェア開発の奥義」という本は かなり気に入っていて新たな発見がありそうです。 私はartonさんと前橋さんの本が気に入っています。 「C言語ポインタ完全制覇」でCに開眼したので。 ところで、多重継承って使ったことないのですが必要な機能なのでしょうか? 使う目的が分かりません。 あとテストファーストについてどう思われますか? 本を読んでると何かよさげなのですが...。 テストケースを書くことで本当にクラスの設計ができるのでしょうか? クラスの設計って経験がものをいうというイメージだったのですが。
[この投稿を含むスレッドを表示] [この投稿を削除]