トップページ⇒tech
324コメント118KB

おまえら、Javaでフリーソフト作るから見てて下さい

■ このスレッドは過去ログ倉庫に格納されています
00011 ◆i6DwCoR1TM 2006/05/01(月) 23:48:14
Java GUIコンポーネント完全制覇
http://www.amazon.co.jp/exec/obidos/ASIN/4774115517/503-0114106-3591160

いまからこの本、一週間で読んでテキストエディタ
作ってやるから、楽しみしてやがれです、コノヤロー
0002デフォルトの名無しさん2006/05/01(月) 23:52:03
あーばばばばば
2ゲット
0003デフォルトの名無しさん2006/05/02(火) 01:46:53
スレタイいいね、コノヤロー
0004デフォルトの名無しさん2006/05/02(火) 04:47:20
そんなもん誰が使うんだ?
0005デフォルトの名無しさん2006/05/02(火) 07:16:46
まあつくってからだ。
話はそれから
0006デフォルトの名無しさん2006/05/02(火) 08:39:21
頭が悪くてプログラマになれなかったおいらも作ってみました
http://namihei.zone.ne.jp/upup/up/55865.png
00071 ◆i6DwCoR1TM 2006/05/02(火) 13:15:15
>>6
うは、何か凄すぎるぞ、コノヤロー
00081 ◆i6DwCoR1TM 2006/05/02(火) 13:16:10
MessageBoxを自作しないといけないAWT
コンテントペインにいちいち乗せてかないと駄目なSwing

うはっwどっちも微妙すぎるwwwwうぇうぇwwwwwwww
コノヤロー
00091 ◆i6DwCoR1TM 2006/05/02(火) 13:18:10
つーかSwingで作ったアプレットの見た目、悪すぎ
打ち込む気力が萎えまくりぐwwwwwww

労多くして得るもの少なし、を
地でいってるとしか思えなかwwwwww
チンコー トモダチンコー
00101 ◆i6DwCoR1TM 2006/05/02(火) 13:22:38
はらへった 飯食いに行ってくるノシ

[飯] λ... コノヤロー
0011デフォルトの名無しさん2006/05/02(火) 17:57:26
テキストエディタなら本買わなくても
ネット上に載っていましたよ…

ほかのもの作ってくださいorz
0012デフォルトの名無しさん2006/05/02(火) 18:32:00
JDKのサンプル
C:\Program Files\Java\jdk1.5.0_xx\demo\jfc\Notepad
も、テキストエディタ…ッポイ。

ま、既にあるものを自分なりに使いやすいものに変える、
ってのが面白くていいんでないかい?
0013デフォルトの名無しさん2006/05/02(火) 21:07:18
俺らが見ていてやる。

( ゚д゚ )( ゚д゚ )( ゚д゚ )( ゚д゚ )( ゚д゚ )( ゚д゚ )
( ゚д゚ )( ゚д゚ )( ゚д゚ )( ゚д゚ )( ゚д゚ )( ゚д゚ )
( ゚д゚ )( ゚д゚ )( ゚д゚ )( ゚д゚ )( ゚д゚ )( ゚д゚ )
( ゚д゚ )( ゚д゚ )( ゚д゚ )( ゚д゚ )( ゚д゚ )( ゚д゚ )
( ゚д゚ )( ゚д゚ )( ゚д゚ )( ゚д゚ )( ゚д゚ )( ゚д゚ )
0014デフォルトの名無しさん2006/05/02(火) 22:14:12
ってか>>6のソース読んでみたい

普通にすごくね?
0015デフォルトの名無しさん2006/05/02(火) 22:51:41
>>14
ただ、GIMPでお絵書きしただけだろ
0016デフォルトの名無しさん2006/05/03(水) 00:05:23
>>15晒しあげ
0017デフォルトの名無しさん2006/05/03(水) 00:20:37
>>15
夢がないよ夢が
0018デフォルトの名無しさん2006/05/03(水) 01:49:34
>>15
それは言っちゃダメです(><)
0019デフォルトの名無しさん2006/05/03(水) 10:35:29
何が凄いのか解らん…。
00201 ◆i6DwCoR1TM 2006/05/03(水) 13:31:02
>>13
畳に目あり、障子に口あり、ひーおそろしかー

・・・本のサンプルプログラムが良い感じなので
タイプしてて楽しい。すこし4章に入ってからペースが
落ちたので頑張らねば。
00211 ◆i6DwCoR1TM 2006/05/03(水) 13:33:49
[昨日タイプしたサンプルコード]

フォーカスを受け入れるボタン
フォーカスを受け入れるラベル
マウスの動作テスト
タイマーイベントの実装
レイアウト入門
デフォルトの終了処理
MyMessageBox145 extends Frame
MyMessageBox151 extends JFrame

子ウィンドウを作るとこがいまいちよくわからん・・・orz
0022デフォルトの名無しさん2006/05/03(水) 13:35:45
JAVA製というだけで即ごみ箱行き
00231 ◆i6DwCoR1TM 2006/05/03(水) 13:37:42
今日は6章まで終わらせんぞ! コノヤロー
てめえら人間じゃねぇ叩き切ってやる コノヤロー
00241 ◆i6DwCoR1TM 2006/05/03(水) 13:38:21
はらへった 飯食いに行ってくるノシ

[飯] λ... コノヤロー
0025デフォルトの名無しさん2006/05/03(水) 13:46:28
Javaはタスクマネージャのプロセス名が全部javaw.exe(or java.exe)なのが困るな。
Eclipse とかが固まった時、どのjavaw.exeを殺せばいいのか分からん。
0026デフォルトの名無しさん2006/05/03(水) 14:08:25
テキストエディタなんて腐るほどあるのに何で作るの?
0027デフォルトの名無しさん2006/05/03(水) 14:32:31
作りたいから作るに決まってるだろうが。
オナニーと一緒。
0028デフォルトの名無しさん2006/05/03(水) 20:30:15
>>27
心に響いた
00291 ◆i6DwCoR1TM 2006/05/04(木) 13:44:53
6章まで終わらなかった…orz
5章のレイアウトまでで限界、なーむお仏壇の長谷川〜

Dialogクラスを使ってダイアログボックスを作成する
JDialogクラスを使ってダイアログボックスを作成する
JOptionPaneでダイアログボックスを作る
フローレイアウト
フローレイアウトSW
ボーダーレイアウト
ボーダーレイアウトSW
グリッドレイアウト
グリッドレイアウトSW
カードレイアウト
カードレイアウトSW × [Swingでカードレイアウトの作り方わからず]

というか、実際のところ、カードレイアウトとか
グリッドバックレイアウトとか、ボックスレイアウトとか
現場で使うことなんてあるんだろうか…謎だ…
00301 ◆i6DwCoR1TM 2006/05/04(木) 13:46:03
MessageboxとかDialogboxとか、単純なものを作成するに当たって、
子ウィンドウを作る、必要が生じた場合。そういう時は、Swingで
JOptionPaneを使うと簡単に。

というか 他のやり方 めんどい
(子ウィンドウのクラス自作するのが めんどい)
00311 ◆i6DwCoR1TM 2006/05/04(木) 13:46:40
でも、MDIなアプリとか作りたければ『子ウィンドウのクラスを自作』を
することは避けて通れないような気が…orz

できれば VCで C + WinApi で作るより簡単に子ウィンドウ作れれば
いいのだけど…orz

やっぱり、子ウィンドウの扱い方がいまいちよくわからん…orz
00321 ◆i6DwCoR1TM 2006/05/04(木) 13:47:23
おなかすいた 飯食いに行ってくるノシ

[飯] λ... コノヤロー
0033デフォルトの名無しさん2006/05/04(木) 14:53:29
おっがんばってるなぁ
0034デフォルトの名無しさん2006/05/05(金) 06:19:55
飯食いに行ったきり、帰ってこなかったらしいな
0035デフォルトの名無しさん2006/05/05(金) 09:14:58
本場の何かを食べに旅に出てんだろ?
003662006/05/05(金) 12:50:54
三日坊主か・・・
00371 ◆i6DwCoR1TM 2006/05/05(金) 13:44:29
6章、終了ー
グリッドバッグレイアウトのところで躓いて
あんまり進めなかった…orz

・Graphicsクラスのメソッドを使ってみる
・ダブルバッファリング
・グリッドバッグレイアウト
・Scrollbar(カラーダイアログボックスを作成して簡易お絵かきソフトの作成)

・getImage イメージ入門
・ImageIcon
・JLabel と JScrollPane
・JScrollPane と JSplitePane


Scrollbarのサンプルが500行近くあって
へこむ。コンストラクタだけで300行あるし…orz

コンストラクタがやたらと大きくなるのが
正直、意外だった。
00381 ◆i6DwCoR1TM 2006/05/05(金) 13:49:22
帰ってきてるし〜旅にも出てないし〜

三日坊主ってゆうなー
00391 ◆i6DwCoR1TM 2006/05/05(金) 13:50:22
おなかすいた 飯食いに行ってくるノシ

[飯] λ... クジケソウカモ
0040デフォルトの名無しさん2006/05/05(金) 16:52:42
タイトルと違って、何か本のサンプルを延々こなす、おたんこなすのスレ。
でも、>>1は、食事の時間がスペイン人並に長い。
0041デフォルトの名無しさん2006/05/05(金) 17:02:40
このスレの印象って、>>1が午後1時半〜2時前に食事にいくことくらいか
0042デフォルトの名無しさん2006/05/05(金) 19:30:47
テキストエディタで作ってるとか?
00431 ◆i6DwCoR1TM 2006/05/05(金) 20:22:54
ちょうど今、この本で最後に作るMyBluePadなる
サンプルのUIの部分を実装してまつ

MenuItem
mfilenew, mfileopen, msavetext, msavetextname, mprinttext, mexit, // ファイルメニュー

inputsearch, inputreplace, selsearch, msrep, jmptop, jmpbottom, mmarkpos, // 検索とジャンプメニュー
jumpprev, mjumpmark, mjumpline, mjumpnexterror,

mcompile, mcompileexecute, mexeclass, mexeclasswithd, // コンパイルメニュー
mexeviewer, mdocgen, // ブラウザメニュー
mdisphtml, mfontsize, mfontcolor, mregbrowser, // オプションメニュー
mregindex, mdohelp; // ヘルプメニュー

なんとなくTeraPadを簡単にしたようなソフトみたいです。
文字の色と大きさが変えられて、Javaの開発支援機能が
あって・・・というかバグが取れないし、うう。
アイテムの名前とか読みにくいよ、うう。
00441 ◆i6DwCoR1TM 2006/05/05(金) 20:25:08
とりあえず、飛ばして次に行こう・・・
「7-2 Swingのメニューを使う」、と。

00451 ◆i6DwCoR1TM 2006/05/05(金) 20:27:33
>>42
サクラエディタ、使ってたり
00461 ◆i6DwCoR1TM 2006/05/05(金) 20:48:33
そうそう実はじぶんお昼寝が好きでシェスタ
しないと駄目なんですよね。

って、スペイン人じゃないしドラニーニョでもないし!
レス返すの遅いし、あばばば
00471 ◆i6DwCoR1TM 2006/05/05(金) 20:49:47
これはもう駄目かもしれんね・・・orz
0048デフォルトの名無しさん2006/05/05(金) 20:56:26
いや、君はまだまだやれる。頑張れ
00491 ◆i6DwCoR1TM 2006/05/06(土) 14:29:11
7章、テキストエリアの項目で躓き
あまり進まず…がっくり…orz

メニュー入門
.setShortcut(new MenuShortcut(
MyBluePadの雛形作成(UIの実装)    バグが取れず

Swingのメニューを使う
Swingでツールバーとアクションを使う
テキストエリアを使ってみる      文字列の検索とか指定行に移動とか難しすぎる ('A`)
テキストファイルの入出力       低速だが移植性に優れたnewLine()を用いて\nを代行出力せよ
テキストファイルの入出力SW     入出力がSwingで高速かつ簡単に

一週間で読む切るのは無理そうだぞ漏れ
コノヤロー
00501 ◆i6DwCoR1TM 2006/05/06(土) 14:31:54
>>48
いちおう頑張るぞ、コノヤロー



うう、挫けそう・・・orz
文字操作周りが難しすぎるよ・・・
00511 ◆i6DwCoR1TM 2006/05/06(土) 17:06:37
俺しか書き込む奴がいねー

>うはっwどっちも微妙すぎるwwwwうぇうぇwwwwwwww
>打ち込む気力が萎えまくりぐwwwwwww

これが原因か・・・orz
00521 ◆i6DwCoR1TM 2006/05/06(土) 17:22:24
いま印刷のところをやってるのだけど
理由なんていいからこれは丸暗記しなさい
といわんばかりに解説がないのが・・・

解説が足りねえぇぇ ・・・orz
0053デフォルトの名無しさん2006/05/06(土) 20:29:04
がんがれ
0054デフォルトの名無しさん2006/05/06(土) 21:47:47
がんがれ
00551 ◆i6DwCoR1TM 2006/05/06(土) 22:44:36
・AWTを用いて印刷処理を実装する
・JTextPaneを使った文字列検索のできるアプレット

を終わらせて8章、終了ー
文字列検索の出来るアプレットのサンプルが
すごく楽しい。でも検索部分のコードの意味が
よくわからないんだよね…orz

ファイルの入出力処理とかの意味もよくわからなかったし
全体的に基礎知識がぜんぜん足りてない状態、なんだよね…orz
00561 ◆i6DwCoR1TM 2006/05/06(土) 22:45:14
それでちょっと考えてみたんだけど、すこし軌道を修正して
みようと思うんだよね。

とりあえず『文字の操作関連のAPIと実装のコツ』とかは
後回しにしておいて…

まずは、開発するに際して、必要となる情報に効率よくアクセスできるように…
NetBeanの本で、IDEの使い方、APIの仕様書であるJavaDocの読み方、そして
基本的な文法の再確認、その辺りをつついてみようと思います。

というわけで、
明日から一週間(5/14〆)で、この本を読んでやるぞ、コノヤロー
http://www.amazon.co.jp/exec/obidos/ASIN/4839914826/503-0114106-3591160
00571 ◆i6DwCoR1TM 2006/05/06(土) 22:46:16
といっても10章の入出力のところまでだけどね、コノヤロー
それでも390ページぐらいあるみたいだよ、コノヤロー

というかじぶんヘタレだぞ、コノヤロー
あばばば …orz
0058デフォルトの名無しさん2006/05/06(土) 22:54:30
何でJavaを選んだの?
0059デフォルトの名無しさん2006/05/06(土) 23:56:47
正規表現あたりは躓く人は躓くぞー

まぁ応援してるぜ
00601 ◆i6DwCoR1TM 2006/05/07(日) 00:16:15
>>58
ソースを拾ってきてそれをいじっていくやり方で
勉強したいなと思ったので…Javaがいいかなと思って
選びました。VC++, C++BuilderでWinApiで行く道に
挫けてしまったなんてことは全然ありません。 うう・・・

>>59
頑張るぞコノヤロー
0061デフォルトの名無しさん2006/05/07(日) 01:13:27
俺perlをはじめたんだが
javaとどっちがいいの?

ネットゲで自動狩ツールってあるんだけど、
それみたいに寄生して自動でいろいろやらせるつもりなんだが、

perlとjavaとどっちがいいのか一言でおせーて
0062デフォルトの名無しさん2006/05/07(日) 02:35:08
>>61
perlもjavaも同じただのプログラミング言語。
両方覚えたら良い
0063デフォルトの名無しさん2006/05/07(日) 02:37:44
>>61
PHPが良いと思うぞ
0064デフォルトの名無しさん2006/05/07(日) 09:11:41
>>61
正規表現を使うならPerlのほうがやりやすい
00651 ◆i6DwCoR1TM 2006/05/07(日) 11:21:34
>>61
漏れも初心者だけど調子に乗って答えちゃうぞ、コノヤロー
JavaとPHPは文字列操作関連のやり方が似ていると思うぞ。
Perlは省略記法が発展していてPHPよりも柔軟なコードを
書きやすいと思うぞ。漏れはヘタレだからPHPに逃げるけど…orz

PHPの文法についてはこのスレが詳しそうだよ
http://pc8.2ch.net/test/read.cgi/php/1046326634/
00661 ◆i6DwCoR1TM 2006/05/07(日) 11:23:56
というか予定変更。以前、買って積読になってたPHPの本から
つついてみる。

いますぐ導入!PHPMySQLで作る最速Webシステム 注:2006年3月に新版発売。俺の持ってるこれは古い奴
http://www.amazon.co.jp/exec/obidos/ASIN/4774118257/503-0114106-3591160
PHPによるWebアプリケーションスーパーサンプル 注:注:2006年3月に新版発売。俺の持ってるこれも古い奴…orz
http://www.amazon.co.jp/exec/obidos/ASIN/4797321288/503-0114106-3591160

上のはインストール本だから2章まで(実質100ページも無いので一日で)

下のは基本的な文法をサンプルを通して学べるスタイルの本。
13章まで(400ページぐらいあるので1週間(5/15〆)で)

上のはともかく下のはたぶん無理そうかも…orz
昨日のやつは、PHP本で文字列操作、ファイル入出力操作を学んでから読むぞ、コノヤロー
00671 ◆i6DwCoR1TM 2006/05/07(日) 11:24:46
言ってることがコロコロ変わるのはヘタレの証拠だ、コノヤロー
あばばば …orz
0068デフォルトの名無しさん2006/05/07(日) 14:45:43
目標がなかったら言語おぼえても意味なくね?
00691 ◆i6DwCoR1TM 2006/05/07(日) 17:23:48
>>68
いまのところ、じぶんは
「目標を立てる」より「課題を見つける」のを優先して
モチベーションを保つようにしてるぞ、コノヤロー

・「目標を立てる」のに、必要な情報が足りてない
・「目標を立てて」失敗するのと、「課題を見つけて」失敗するのとを比べると、
  自分の場合、へこみ具合が確実に前者のほうが大きい…orz
・そもそもヘタレなので失敗する確立のほうが高い…orz

じぶんはヘタレなのであまり参考にならないかも…orz
00701 ◆i6DwCoR1TM 2006/05/07(日) 17:25:27
というかPHPとHTMLの混ざったソースを読むのが
めんどい。ある意味HTMLが最凶な言語な希ガス。
煩雑すぎるよ、うう
00711 ◆i6DwCoR1TM 2006/05/07(日) 17:55:01
<?php
  //乱数ジェネレータを初期化します
  srand(microtime()*1000000);
  //ランダムのGIFファイル名を生成します
  $imgfile = "image/banner" . rand(1, 10) . ".gif";
  //HTMLとして画像ファイルを出力します
  print "<IMG SRC = '$imgfile' >";
?>

gifファイルが表示されねー
同じフォルダ内にちゃんと[banner1.gif〜banner10.gif]まで
置いてあるのにどうして、ううう
0072デフォルトの名無しさん2006/05/07(日) 20:24:26
>>56の本のサーブレット編でもやってみたら?
0073デフォルトの名無しさん2006/05/07(日) 20:58:13
ネット絡みのプログラムにすればいい
いかにも何か作っているような充足感が得られるよ
00741 ◆i6DwCoR1TM 2006/05/07(日) 22:32:20
>このphp_mbstring.dllは、PHPの各バージョンによって使用すべきものが異なる模様です。
>こちらでも確認しましたが、あるバージョンのPHP用のphp_mbstring.dllを別バージョン
>のPHPで使用するといったことはできません。
http://www.gihyo.co.jp/books/support.php/4-7741-1825-7(技評のサポートページ)

2バイト文字なんて、なくなってしまえばいいのに!
.dllなんて、なくなってしまえばいいのに!

…

php-4.3.2-Win32(29 May 2003)に入ってたphp_mbstring.dllは740KBで、最新版の
php-5.1.4-Win32(04 May 2006)に入ってるphp_mbstring.dllは1.6MBで、
容量が2倍になって、機能とかも拡張されてるから仕方ないといえば仕方ないのか…orz
00751 ◆i6DwCoR1TM 2006/05/07(日) 22:58:13
>>72
>>61さんへのレスですよね?ネトゲの自動狩ツール・・・
寄生して何かやらせる・・・

WSH、JavaScriptでタブブラウザの機能を拡張するとかの
応用とかなんだろうか・・・うん、漏れにはわからん、コノヤロー

>>73
ネット絡み・・・なんか難しそう・・・というかどういうのがネット絡みの
プログラムなのかよくわからないような・・・orz

「紙」とか「タブブラウザ」とか「2chブラウザ」とかなら
作ってみたい気もするけど、データーベースをいじったり
HPメンテナンスするようなのはあまり気が進まない・・・
00761 ◆i6DwCoR1TM 2006/05/08(月) 01:19:09
PHP勉強するの止め!本しまえ!
消灯寝れ!


やっぱりクライアントアプリじゃないと
作る気しない・・・orz

というわけで、やっぱり
明日から一週間(5/15〆)で、この本を読んでやるぞ、コノヤロー
http://www.amazon.co.jp/exec/obidos/ASIN/4839914826/503-0114106-3591160
00771 ◆i6DwCoR1TM 2006/05/08(月) 01:22:07
きょうは無かったことにする日・・・('A`)
0078デフォルトの名無しさん2006/05/08(月) 05:42:56
…なにもしてやれんが、がんばれ
0079デフォルトの名無しさん2006/05/08(月) 17:32:46
>>77
そうやって試行錯誤するのがあとあと糧になるんよ。
ちなみにその本、1冊全部で50時間くらい。10章までなら30時間くらいだと思われる。
00801 ◆i6DwCoR1TM 2006/05/08(月) 19:05:30
Java2SE5.0で拡張されたfor文の機能が
おもしろい

[Perl]
@list = (0, 1, 2, 3, 4, 5);
foreach $a (@list) {
print "$a\n";
}

[PHP]
$list = array(0, 1, 2, 3, 4, 5);
foreach ($list as $a) {
print "a = $a\n";
}

[Java2SE5.0]
int[] data = {0, 1, 2, 3, 4, 5};
for(int n: data){
taOutput.append(n + "\n");
}
0081デフォルトの名無しさん2006/05/08(月) 19:09:56
俺のおすすめは『コアJAVA』だ
>>1はプログラミングまったくの初心者?
00821 ◆i6DwCoR1TM 2006/05/08(月) 19:16:07
やっぱりデーターベースにアクセスしたりするのに
便利そうだから拡張されたんだろうか・・・いまいち
使い道が思い浮かばない・・・orz

それからあと
Perlは省略しないで書くと、意外と素直でキレイな
言語なんだろうか、とか思ったりした。
00831 ◆i6DwCoR1TM 2006/05/08(月) 19:25:50
>>81
文法の本は『明解C言語 入門編』を読んだことが
あるくらいであまりよくわからなかったり。。。
たぶん初心者に毛が生えた程度だと思ったり・・・orz
00841 ◆i6DwCoR1TM 2006/05/08(月) 19:37:32
すみません。そういえばJavaの本で「やさしいJava」を
読んだことありました。。。

漠然とクラスが型で、オブジェクトが実体で、コンストラクタが
初期化子で、メソッドがあって、アクセス指定子があって、みたいな
かんじのイメージはあるけど、あまり詳しいことはわからない状態、
そんなかんじです。

もっとサンプルコードとか打ち込んで実際使っていかないと
理解できないのかもと思って色々やってみようと思ってるの
ですけど・・・量が足りてないかも・・・orz
00851 ◆i6DwCoR1TM 2006/05/08(月) 19:49:06
あと「独習Java」を買って読もうとして
挫折した経験が、うう・・・orz

「コアJava」おもしろそう・・・
だけど今の段階で読めるのかどうか
うーん、微妙かもしれないですよね、うーん・・・orz
0086デフォルトの名無しさん2006/05/08(月) 19:54:46
やさしいJAVA(通称、まなJAVA)読んでればコアJAVA読めると思う
あとおすすめはこれ、
http://www.atmarkit.co.jp/fjava/rensai2/javaent01/javaent01.html
00871 ◆i6DwCoR1TM 2006/05/08(月) 20:05:55
>>86
おお、なんか良さげなページが。

ところで「コアJava」って816 ページもあるんですね・・・orz
でも目次の内容とこのページ数からしてサンプル
が豊富なかんじなので、ちょっと今読んでる本を
読み終わったら読んでみようと思います。情報�dくすです。
よーしやってやろうじゃないですか、コノヤロー
00881 ◆i6DwCoR1TM 2006/05/08(月) 20:08:34
・・・とその前にいま読んでる本、読まないと・・・orz
00891 ◆i6DwCoR1TM 2006/05/08(月) 20:16:02
というか今日はあまり進んでないですな・・・orz
0090デフォルトの名無しさん2006/05/08(月) 22:58:56
やさしいJavaは書いてる本人がJavaわかってないから、読んでも文法の存在はわかるけど使い方がまったくわかんないんだよ。
気にすんな。
00911 ◆i6DwCoR1TM 2006/05/09(火) 12:44:28
本来なら『Figureクラスの変数』は、
その中にそのサブクラスであるRectangleクラスのオブジェクトをつっこんでも、
「上位クラスのメンバ」と「そのクラス自身のメンバ」にしかアクセスできない。

Figure figure1 = new Rectangle(7, 4);
figure1.showRectangle();       // サブクラスに定義されたメソッド、実行できない

figure1.draw();             // 多態性によって、サブクラスに定義されたメソッド、実行できる

なぜなら
Javaのコンパイラはそのメソッドにアクセスできるかどうかを
『変数の型』だけみて判断するから。

よって面倒だけど

多態性、以外の方法で
上位クラスからサブクラスのメソッドを利用したいときは、ダウンキャストしろ、と。
00921 ◆i6DwCoR1TM 2006/05/09(火) 12:46:02
Figure figure1 = new Rectangle(7, 4);
Figure figure2 = new Figure(5, 3);

Rectangle rect = (Rectangle)figure1;  // 変数の型変換、中身はRectangleクラスのObject、入ってる
Rectangle rect = (Rectangle)figure2;  // これは上手くいかない、中身がFigureクラスのObjectだから
rect.showRectangle()

ダウンキャストは、上位クラスの変数の型を
下位クラスの変数のそれに、変換することが出来るだけで、
中身までは換えられないのですね…
00931 ◆i6DwCoR1TM 2006/05/09(火) 12:48:09
大きな入れ物  小さな入れ物
ちいさなモノ
        ↓ ダウンキャスト

大きな入れ物  小さな入れ物
           ちいさなモノ      

Figure figure2 = new Figure(5, 3);
Rectangle rect = (Rectangle)figure2;  // これは上手くいかない、中身がFigureクラスのObjectだから

つまり「おおきなモノ」を「小さな入れ物」に入れることは
できないということですな…
0094デフォルトの名無しさん2006/05/09(火) 13:04:36
その章を越えたら楽になるし楽しくなるから、ガンガレ
0095デフォルトの名無しさん2006/05/09(火) 13:05:19
あと、わかんなくてもトニカク進め。
進んでみて振り返ればわかるから。
00961 ◆i6DwCoR1TM 2006/05/09(火) 13:07:07
コンビニのお弁当を作っているメーカーの開発者のひとが
コストを削減をしなければならないと言われ困る。

大きなサイズになるべく、見栄えよく小さな具をいれよう…
でも待てよ、小さな具なら小さなサイズでコストを…イヤイヤ
それでは満足感が足りなくなって…

『中身を替えずに入れ物を換える』、小さなサイズの入れ物に
いかにして付加価値を付けてゆくか、ピンを抜くと温まる機能が
つけてみたりする(下位クラスに便利なメソッドを実装する)

なんか例えが微妙だし…orz
00971 ◆i6DwCoR1TM 2006/05/09(火) 13:11:08
>>94
おお、ガンガルぞ、コノヤロー
・・・その前に、ごはん

[飯] λ... ごはん
00981 ◆i6DwCoR1TM 2006/05/09(火) 14:25:33
メソッドの名前が同じでも、中身のオブジェクトの種類によって
その振る舞いを換えることが出来る、多態性。

多態性    [上位クラスでの振舞い] 下位クラスの振る舞い1 下位クラスの振る舞い2…
抽象メソッド 下位クラスの振る舞い1 下位クラスの振る舞い2 下位クラスの振る舞い3…

同じ名前で異なる振る舞いをするメソッドを定義したいとき
使われるテクニック?使いどころが、いまいちわからない…
とりあえずここは、飛ばそう…
00991 ◆i6DwCoR1TM 2006/05/09(火) 14:31:09
>使いどころが、いまいちわからない…
使いどころじゃなくて、使い分けだし・・・orz
0100デフォルトの名無しさん2006/05/09(火) 14:39:05
>>98
>同じ名前で異なる振る舞いをするメソッドを定義したいとき
>使われるテクニック?
正解。ただし上位クラスと下位クラスではなく、下位クラスAと下位クラスBで同じ名前で異なる処理を
するときに使ってあげて。

例:上位クラスFigureにdraw()メソッドがり、下位クラスLineとTextでは、それぞれの描画処理をする。
LineやTextのインスタンスをFigure型の変数に入れれば、draw()をコールしたとき、実体を意識せずとも
適切な描画処理が実行される。
01011 ◆i6DwCoR1TM 2006/05/09(火) 15:50:28
>>100
なるほろ。ということは「多態性」と「抽象メソッド」は
ほとんど同じような用途に使われる訳ですね・・・メモメモ
■ このスレッドは過去ログ倉庫に格納されています