【初心者】Java質問・相談スレ50【大歓迎】

このエントリーをはてなブックマークに追加
>>949
サイトは知らんけどJavaWorld2004年1月号
フォントってBOLDとITALICいう具合に組み合わせ可能じゃないですか。
そのときコードで、
int type = Font.PLAIN;
type = type | Font.BOLD;
type = type | Font.ITALIC;
という風に記述しますが、具体的な数値の動きが知りたいのです。
PLAIN=1,BOLD=2,ITALIC=4 みたいな感じでコントロールされて
いるのですか?
>>953
コントロールちう語の使いどころが納得いかんがそのとおり。
つーか出力してみればわかるやん?
>>954
ありがとうございます。
出力して確認という手段があったのに気づきませんでしたorz
早速出力して確認してみます。
ほんとの確認は各クラスのソース拾ってきて見ることだな。
同様のもので種類の多いのは int で収まらないので long 使ったりしてる。
実際の数値はAPIリファレンスにちゃんと
定義されているからそっちをみるほうが先。
いきなり出力したりソース見たら、どこまで
規格でどこから実装依存なのか把握できない。
質問内容は実際の数値じゃないけどな
959950:04/08/04 22:42
>951
イベントの実装って、そういう意味だったんですね。
ありがとうございました>エロイ人
現在いるディレクトリをStringで取得するにはどの命令を使えばいいでしょうか?
>>961
サンクス。何とかなりました
963デフォルトの名無しさん:04/08/05 01:02
C→Java とやってきて、C++を勉強しています。
Java と C++ の関係についてですが、
・Java のクラスメソッドは、すべて C++ でいうところの仮想関数
・Java のabstract メソッドは、C++ の純粋仮想関数
・すべてのメソッドが純粋仮想関数なのが、Java の interface
ということでよいでしょうか。
> ・Java のクラスメソッドは、すべて C++ でいうところの仮想関数
インスタンスメソッドの間違いじゃね?
あんまり厳密に関連付けて考えない方がいいよ。
混乱のもとだから。
>>963
C++を勉強してるならC++のスレで聞いた方が良いと思われ。
>>963
> ・すべてのメソッドが純粋仮想関数なのが、Java の interface

すべてのメソッドが純粋仮想関数なクラスは、すべてのメソッドがabstractなクラスです。
インタフェースはどっちかというとヘッダファイルだな。
クラス定義はヘッダにかくんでその言い方もちがうとおもうぞ

これがこれに厳密にあてはまるということはない
と考えた方がいいぞ

単純に置き換えが可能ならその言語の価値ってものはねぇ
インターフェイスは、すべてのメソッドがabstractなクラスのうち、多重継承が可能なもの、です。

って言語モデルの違いを無視した表面的な置き換えは混乱のもとになるかもしれないけど、最初のとりかかりとしては、やはり単純な置き換えからだろう。
いきなりモデルや思想の違いを考えても、耳学問になるだけだし。
で、違和感のある部分について言語モデルがどう違うか考えていくというのが、勉強しやすい流れかと。
【初心者】Java質問・相談スレ51【大歓迎】
http://pc5.2ch.net/test/read.cgi/tech/1091666193/l50

次スレ立てた。
これからバイトに逝くのであと(wikiとか)は任せた。
>>971
*たぶん* wikiは何とかできた
>>971-972
974デフォルトの名無しさん:04/08/05 19:16
wikiの更新も自動化されればやりやすいのだが。

Antで自動化できんだろうか

HttpUnit使えってか?
975デフォルトの名無しさん:04/08/06 01:49
はじめまして。
InputStreamクラスの read() メソッドなのですが、
戻り値として0(zero)が返ってくるのはどういう意味
なのでしょうか?
読み込んだけどデータが無い? ん〜、分かりません・・・。
読み込むデータがなければブロッキングされるので、
そもそも処理が戻ってこないですし・・・。
ASCIIコードの '\0' が戻ってきたということなのでしょうか?
でも、この'\0'というのはどういうことなのか・・・。
宜しくお願い致します。
>>975
> 読み込むデータがなければブロッキングされるので、

この根拠のない自信はどこから湧いてくるんだ?
977975:04/08/06 02:07
>>976
JavaDoc から。

ちゅーか、そんな事聞いてね−よ、ドアホ。
>>975
読み込めるようになるまでブロックするというのはいいとして、
読み込むデータがあっても1バイトも読めなかったという可能性はあるわけだが。
読むのに失敗したではなく、読み出せなかった、だぞ。
0が返ってくることの何が疑問なのか、意味不明。
何もエラーが無かったらreturn 0;とかの0じゃないの・・・?
Reads the next byte of data from the input stream. The value byte is returned
as an int in the range 0 to 255. If no byte is available because the end of
the stream has been reached, the value -1 is returned. This method blocks
until input data is available, the end of the stream is detected, or an exception
is thrown.

0から255の範囲の数値が返されることに何の疑問があるんだ?
int read(byte[] b)

たしかに、このbの長さが0の時以外は0が返ることはないように読める、javadocの説明では。
>>982
ここではread()の戻り値がどうして0になるのか聞いてるらしいぞ。

 ByteArrayInputStream bais = new ByteArrayInputStream(new byte[]{0});
 System.out.println(bais.read());

ほんと、なにが不思議なんだか。
>>975-978 >>980 >>982
ぼんくら
ま、質問者のぼんくらさにミスリーディング誘われたってのもあるかもしれないが
clsなどのdos窓のコマンドを呼び出すにはどうしたらよいですか?
986985:04/08/06 12:25
というかdos窓をクリアできればええのです。教えてプリーズアゲ
DOS窓ってことはWin9x系?
エスケープシーケンスでも使えば?
988デフォルトの名無しさん:04/08/06 12:43
あ、なる
やっちみます
ああ、C言語で試しても動作しない・・・XPどえす。
Runtime.getRuntime().exec("cmd /k cls");
この手のやつも期待した動作しないし。
もしかして出来ないとか・・?
>>989 だからわざわざ9x系か?って聞いたのにな。
シェル自身の機能としてシェル自身のテキスト領域を消去する形になってるんだから、
エスケープシーケンスなどの、シェルと対話する方法を使わなければならない。
しかし w2k 系ではエスケープシーケンスは使えないらしい。
cls は cmd.exe 自身の持つ内部コマンドだから Runtime#exec の対象とはなりえない。
cmd /k cls は新たに起動した cmd に対して対話を行っているのでうまくいかない。
できないんじゃないのかなぁ。
そうか、どうもありがとう。。
Java cursesとかもあるけどね。
>>992
WindowsXP では ansi.sys だったかを使えばエスケープシーケンス使えるよ。
JAVAコンソールで無理やりへっぽこパックマソを
へらへらと書いて2ちゃんにソース貼り付けようと
たくらんでいただけの俺を許してください。

サードパーティ製のライブラリいれたりドライバ組み込んじゃうと
誰もが気軽にそのソースをコンパイルして試すってことができないので
当初の目的から離れてしまうのです。
ごめんなさいごめんぬるぽなさい。

ちなみに
定期的にコンソールをクリアして
別スレッドでキー入力をひろって処理することで
ゲームループを実現しよぬるぽうとしていますた。
簡単に画面消去できないとなるとあきらめるっぽ。
>>995
ansi.sysがDOSのデバイスドライバってのはOK?
http://support.microsoft.com/default.aspx?scid=kb;EN-US;100394
この辺の事情はXPでも変ってなかったはず。
>>996
それ、今回の質問が解決したとしても、次には
「コンソールから一文字ずつキー入力を検出するには
どうしたらいいんですか?」という新たな質問が
生まれそうだ。
コンソールってかdos窓で動作する標準のJAVAアプリケーションね。。
まぎらわしくてすんまそ。ごきげんよぅ。ノシ
>>998
そうねそうね。多分そうねって1000?うほっ
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。