K.Maebashi's BBS

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

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

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

[189] Re:XMLについて
投稿者:kit
2007/02/20 02:13:25

ちょっと気になるのは、神奈川さんがどういう立場で プログラミングをされているかですね。 自力でプログラミングができるようになることが目的で あれば、分からない問題を安易にBBSで聞いて解決する のは考えものです。むしろ、ひとに全く聞かなくても 自分で解けるようになるにはどうすれば良いのかを 考えた方がいいと思います。 最初のうちは、自分で解こうにもどうすればいいのか 見当もつかないことも多いわけですし、神奈川さんの 質問自体、まさにそういう状態にあると思われる質問 なわけですが、こういう場合は、似たようなことを している他人のプログラムを読んで理解し、真似を することから始めるのがいいんじゃないでしょうか。 似たようなプログラムはあるけどどう変えたらいいのか 分からないような場合、それは結局、そのプログラムが どういう動作をしているかちゃんと理解できてないという ことを意味しますから、理解できるようになるまで、 変数の内容表示を行う文を挿入したり、デバッガによる トレースなどを行いながら、他人のプログラムを繰り返し 読むというのが、遠回りに見えて実は近道になると思います。 神奈川さんの質問を見ていると、そもそも他人の書いた プログラムを細部までちゃんと理解して読んだ経験が 少なそうに見える点、そしてもっと大きな問題として、 自分で書くプログラムについても、どう動作するのか、 ちゃんと理解してないように見える点が気になります。 このあたりの問題をきちんと解決しておかないと、当面の 問題は解決できても、いつまでたっても一人だちできない ということになりかねません。 あと、これは基本中の基本なので、わざわざ指摘するのも 何か変な気もするのですが、インデントも変ですよ。 使い捨てのテストプログラムならともかく、人に見て もらう場合、インデントを正しくつけるのは、最低限必要な ことだと思います。
[この投稿を含むスレッドを表示] [この投稿を削除]
[188] Re:XMLについて
投稿者:(ぱ)
2007/02/20 02:13:25

>ここで問題なのは、属性を作成するとエラーが発生してしまうということです。 このプログラムを自分のところでコンパイルして動かすほど私は親切ではないので、 エラーが出たというのなら、どんなエラーが出たかぐらいは書いてください。 もちろん、エラーメッセージを直接コピペする形で。 掲示板やMLに質問する際の質問のしかたについては、以下のページが参考になります。 JavaHouse Topics。この中の「質問のしかたについて」 http://java-house.jp/ml/topics/ 技術系メーリングリストで質問するときのパターン・ランゲージ http://www.hyuki.com/writing/techask.html 真 技術系メーリングリストFAQ http://www.geocities.co.jp/SiliconValley/5656/
[この投稿を含むスレッドを表示] [この投稿を削除]
[187] XMLについて
投稿者:神奈川
2007/02/20 02:13:25

件名を変更しました。 またXMLで解らない事が出てきてしまいました・・・ 問題例を以下に記述します。 ---あ.xml---- <愛 id=1>   <b>     <c>     </c>   </b>     <愛 ID=2>     </愛> </愛> ------------ 特定のタグの属性の下に -- <k>  <愛 ID=7>あああ</愛>   </k> を記述しそのタグ<愛>に属性を与えるというプログラムです。 ☆例えば、あ.xmlの<愛 ID=2>の下に <k>  <愛 ID=7>あああ</愛>   </k> を加えたりするなどです。 ここで問題なのは、属性を作成するとエラーが発生してしまうということです。 以下に自作したプログラムを記述します。 static void selectionAppend() throws Exception { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document doc = db.parse(new FileInputStream("あ.xml")); NodeList list = doc.getElementsByTagName("愛"); for (int i = 0; i < list.getLength(); i++) { Element node = (Element)list.item(i); if (!(node instanceof Element)) continue; String value = ((Element)node).getAttribute("ID"); //ここで対象属性名を指定し if (value != null && value.equals("2")) { //ここで対象属性値を指定する Node child1 = doc.createElement("k"); Node child2 = doc.createElement("愛"); //↑ここのタグに属性を追加したい、setAttribute("ID", "7");このメソッドを代入する //のでしょうがどのように代入すればよろしいでしょうか。 Node child3 = doc.createTextNode("あああ"); child2.appendChild(child3); child1.appendChild(child2); node.appendChild(child1); //↑ここでツリー構成は完了していることになるのでしょうか?できたとしたら、 //NodeList know = node.getElementsByTagName("愛"); //Element knowe = (Element)know.item(0); //knowe.setAttribute("No", "8"); //こうするのでしょうが、 //解らなくなってしまったので、また質問しにきました。宜しくお願いします。 } } FileOutputStream out = new FileOutputStream("あ2.xml"); DOMSource src = new DOMSource(doc.getDocumentElement()); StreamResult dst = new StreamResult(out); Transformer tfm = TransformerFactory.newInstance().newTransformer(); tfm.transform(src, dst); out.close(); }
[この投稿を含むスレッドを表示] [この投稿を削除]
[186] Re:どうしても,整理できません.
投稿者:student
2007/02/20 02:13:25

※この投稿は、現在の裏掲示板に投稿されたものを前橋が転載したものです。 丁寧な,ご返答ありがとうございます.大変,参考になりました.大分,整理がついてきました. 心から,感謝します. 今後も,疑問が沸いてくると思いますが,どうしても,手に負えない場合には,相談させて頂きます.お時間が,ありましたら返答して頂けたら幸いです. > よろしければ、studentさんの最初の投稿から、全て表の掲示板に移行しようと > 思うのですが、よろしいでしょうか? 是非,移行してください.
[この投稿を含むスレッドを表示] [この投稿を削除]
[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などの経験も無駄ではなかったかも。
[この投稿を含むスレッドを表示] [この投稿を削除]