トップページ⇒tech
954コメント342KB

ネタ心者歓迎!今更ながらにJava相談室  その2

■ このスレッドは過去ログ倉庫に格納されています
00011NGNG
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| 先輩!Javaの質問はこのスレでしましょう。
\
   ̄ ̄ ̄|/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ∧_∧       / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ( ・∀・)  ∧ ∧ < カキコする前に>>2-10をチェックしとけやゴルァ!!
 (  ⊃ )  (゚Д゚  )  \_________________
 ̄ ̄ ̄ ̄ ̄ (つ_つ__
 ̄ ̄ ̄日∇ ̄\| BIBLO |\
        ̄   =======  \

>>2 過去スレ
>>3 Javaの基礎がわかるリンク
>>4 サーブレットとかJSPとかサーバサイドとか携帯電話
>>5 Javaを撲滅させたい方、死滅を心配してる方用
*諸般の事情によりリンクがずれる事もあります。
0153148NGNG
>>152
初期化出来ませんです。
0154デフォルトの名無しさんNGNG
どういう事ですか?
噛み砕いて教えてもらえますか?
0155デフォルトの名無しさんNGNG
>>148さんの問題って
X1 x1;
X2 x2; <-ここで初期化されてない
x1 = new X1( x2,1 ); <-でもここでx2を使っている
x2 = new X2( x1,2 );

が問題じゃないんですか?
0156デフォルトの名無しさんNGNG
仕事で組んでたプログラムが要約すると>>148なのに今日気付いたのじゃ。
0157デフォルトの名無しさんNGNG
>>155
どう書き換えても初期化できないソースなのでした。
0158デフォルトの名無しさんNGNG
どーでもいいが、「初期化できない」というより、
「コンパイルできない」とかいったほうがはるかに話がわかりやすい。
0159デフォルトの名無しさんNGNG
ちょっと考えたんですが.
クラスはテンプレートであってそれから複製されるインスタンスは複数ある.
インスタンス変数は個々のインスタンスに属している為,一つしかないクラス
から
呼び出せる訳はない.
と言った感じでしょうか.
0160デフォルトの名無しさんNGNG
カーソルがあるコンポーネントのある範囲内に位置している時に
カーソルの絵を変えるにはどうするんですか?
単にmouseEnteredじゃ、そのコンポーネントに入った時だし、
mosueMovedじゃ、マウスが動いてる時しか変化しませんよね?
mouseEnteredメソッド内で範囲指定して・・というのは意味無いですよね?
0161デフォルトの名無しさんNGNG
enteredとmovedを組み合わせればいいのでは?
0162がばろん@MたんちゅきちゅきNGNG
>>160たん。
mosueMoved()とsetCursor()を用います。

「あるコンポーネント」にmouseMoved()を実装。
このメソッドを用いてマウスカーソルの座標位置が変化するごとに、
その座標位置が「ある範囲内」か、どうかチェック。

もしマウスカーソルの座標が「ある範囲内」に入っていたら、
マウス「カーソルの絵を変える」。

もしマウスカーソルの絵がデフォルトのものではなく、
なおかつ「ある範囲外」ならデフォルトの画像にもどす。

// たぶん、こんな感じだとおもう。
// もっとエレガントな方法が、あるのかも知れないけど。
0163バイク並みの自転車NGNG
質問です。
携帯I-MODE用のJAVAで、簡単な問答プログラムを作ったのですが、
最初に出た問題が後でまた出ます。かぶらせない方法は「ソート」
させて頭から解かせれば良し」と言ってますが、仕様書のSORTの
使い方も解らず。たっけて下さいな。
あとこれがソースです。ソース名jyukugo.java
(page1/7)
import com.nttdocomo.ui.*;
import java.util.*;

public final class jyukugo extends IApplication {
public void start() {

Random R = new Random();

int a = Math.abs(R.nextInt() % 16);
int b = Math.abs(R.nextInt() % 16);
int c = Math.abs(R.nextInt() % 16);
int d = Math.abs(R.nextInt() % 16);
int e = Math.abs(R.nextInt() % 16);
int f = Math.abs(R.nextInt() % 16);
int g = Math.abs(R.nextInt() % 16);
int h = Math.abs(R.nextInt() % 16);
int i = Math.abs(R.nextInt() % 16);
int j = Math.abs(R.nextInt() % 16);//問題をランダムに表示
0164バイク並みの自転車NGNG

int end = 0;
int tokuten = 0;
int n = 1; //何問目か確認
int answer = 0;
//問題データー
String[] mondai = {

"順風満帆の読みは「じゅんぷうまんぽう」?",
"一石三丁は存在する?",
"そもそも四字熟語自体が四字熟語?",
"苦心惨憺とは困りながら工夫を凝す事?",
"矮子看戯の読みは「かんしかんぎ」?",
"跳梁跋扈の読みは「ちょうりょうばっこ」?",
"日常坐〇。〇には俄が入る?",
"肉食妻帯の反対は菜食独身である",
"放歌高吟とは叫び歌う事?",
"内柔外剛とは虎の衣を〜と同じ?",
"臥薪嘗胆とはひたすら耐え忍ぶこと?",
"邂逅相遇とはめったに出会わないこと?",
"紅毛碧眼とは外見がおかしい事を指す?",
"国士無双は「こくしむそう」と読む?",
"孤軍奮闘と孤立無援。意味は同じ?",
"威風凛凛の読みは「いふうていてい」?"};

short[] kaitou = {0,0,0,1,0,1,0,1,1,0,1,0,0,1,0,0};
0165バイク並みの自転車NGNG
String[] kaisetu
= {"解説:順風満帆はじゅんぷうまんぱんと読みます",
"解説:一石三丁はただの造語です",
"解説:四字熟語は四文字熟語の略語です",
"解説:合っています。くしんさんたんと読みます",
"解説:わいしかんぎです。適当に合せる事です",
"解説:読みは合っています。悪者がのさばる事です",
"解説:入るのは臥です。",
"解説:あっています。仏法用語です。",
"解説:あっています。無法という意味でもあります",
"解説:同じです。柔道の言葉です",
"解説:あっています。昔の中国は越の国の言葉です",
"解説:偶然の一致の事です。",
"解説:外人のことを指します",
"解説:満貫払いです。",
"解説:少し違います。一人かそうでないかです",
"解説:いふうりんりんと読みます"};

Dialog dg1 = new Dialog(Dialog.BUTTON_OK,"四字熟語");
Dialog dg2 = new Dialog(Dialog.DIALOG_YESNO,"四字熟語");
dg1.setText("四字熟語テストを始めます。全10問です。");
dg1.show();
dg1.setText("〇×はYES_NOで答えてください");
dg1.show();
0166バイク並みの自転車NGNG
do {
  dg2.setText("第" + n + "問 " + mondai[a]);
if(dg2.show() == dg2.BUTTON_YES){answer = 1;}
else{answer = 0;}
if(answer == kaitou[a]){tokuten++;dg1.setText("正解!");dg1.show();}
else{dg1.setText(kaisetu[a]);
dg1.show();}
n++;

dg2.setText("第" + n + "問 " + mondai[b]);
if(dg2.show() == dg2.BUTTON_YES){answer = 1;}
else{answer = 0;}
if(answer == kaitou[b]){tokuten++;dg1.setText("正解!");dg1.show();}
else{dg1.setText(kaisetu[b]);
dg1.show();}
n++;

で、変数がjまで続きます。

dg1.setText("あなたの得点は" + tokuten*10 +"点です。");
dg1.show();
tokuten = 0;
n = 1;

dg2.setText("もう一度同じ問題をやりますか?");
if(dg2.show() == dg2.BUTTON_YES){end = 0;}
else{end = 1;}

} while(end == 0);

terminate();}
}
0167デフォルトの名無しさん NGNG
>>163
トランプか、カードゲームまたはランダムに問題を出すものでもなんでもいい。言語もなんでも
いいので、とにかくアルゴリズムを調べてみれば?
0168 NGNG
「ソートして」つうのは誰のアドバイス?
間違ってる。
0169爺NGNG
>>163
このソース全部読めってか?
問題と思われるソートの部分だけを抜き出して再現させろよ。

#プログラムを「自分で作っている」という自覚はあるのか?
0170バイク並みの自転車NGNG
>>167さん
れすありがとうございます。ランダムに問題を出すのは
結構確認しております。残念ながら使える言語がJAVAの
みなのでアルゴリズムはフリーウェアのみ確認しています。
それでランダムに出す方法は解ったのですが、出題した
問題がかぶります。オープンソースの所もあんまりないし、
Iアプリは携帯でしかダウソできないのよ・・・どうしよう・・・
0171エッチマンNGNG
>>170
問題がかぶらない方法
1.一度出した問題かどうか覚えておく
2.問題のリストそのものをシャッフルして頭からとりだしてく
どっちかでいいじゃん?
0172バイク並みの自転車NGNG
>>爺さん
すみません。そう言うつもりではありませんでした。
題材に1から16の文字をあてて、Math.abs(R.nextInt() % 16);
これを使って適当に問題を引っ張ってくる事を10問繰り返す
プログラムです。当然かぶります(T_T)。
一からリファレンスなどを見ながら作って、流用、盗用
はしていないので作っていると思っていますが・・違うのですか?
0173バイク並みの自転車NGNG
>>エッチマンさん
  一度出した問題かどうか覚えておく
 
  なるほど。たとえば一度6番目の問題が出題されて、
  次の問題とかで乱数を出して6が出たらもう一度乱数を出す。
  これを繰り返す。これでOK?
0174デフォルトの名無しさんNGNG
テキストエリアから行ごとに文字列を
取り出すことってできるのでしょうか?

例えば、1行目を取り出して配列aに入れて、
2行目は,別の配列に入れる、など。
0175エッチマンNGNG
>>173
アバウトにそんな感じ。

いちいちやってるとめんどうだから
1からxまで偏り無く乱数を返すクラス
を作って、その中でやるようにしたい
RandHoge ero = new RandHoge(x);
int a = ero.toridasi();
みたいな使いっぷりのクラスを
作ってみたら?
中身の実装は1案2案どっちでもいいし
使う側は気にしなくていいし ←すげー重要
0176バイク並みの自転車NGNG
>>エッチマンさん
  さんくす。
  早速組んでみます。
0177デフォルトの名無しさん NGNG
>>170
> れすありがとうございます。ランダムに問題を出すのは
> 結構確認しております。残念ながら使える言語がJAVAの
> みなのでアルゴリズムはフリーウェアのみ確認しています。

言語はなんでもいいって言ってるじゃん。

ソースぱくるなら JAVA からしかないけど、アルゴリズム読むなら、JAVAじゃなくたって
perl だって、 shellscript だって、 VB だって、 C だって、日本語だって、英語だっていい
じゃん?

結局、JAVAじゃなきゃ駄目だってんなら、みなさんから回答うけたところで「どうやって組
むんでしょうか?」ってオチになっていくような気がするんだけど。
0178デフォルトの名無しさんNGNG
こういう場合どうるの?
public void trap( Throwable e )
{
 StringWriter out = new StringWriter() ;
 e.printStackTrace( out ) ;
}
スタックトレースを文字列にしたいの、
とりあえず、StringWriterってのを、与えみたんだけど、
だめだった。
オスエテェ〜
0179デフォルトの名無しさんNGNG
>>178 StringWriterのAPIドキュメント見ろ
で、何がどう駄目なのか言ってみ
http://java.sun.com/j2se/1.3/ja/docs.html
0180デフォルトの名無しさんNGNG
for(;;){
for(i=0;i<n;i++){
hogehoge
}
}

他人のソースを見て勉強しているのですが
for(;;)はどういう意味でしょうか?
0181エッチマンNGNG
>>178
StringWriterじゃなくてPrintWriterをあげなきゃじゃん?
0182178NGNG
>>179
えらそぉ〜な、知ったかバカだなぁ〜、すっこんでろな。
でも、めっかた。

public void trap( Throwable e )
{
 StringWriter sw = new StringWriter() ;
 PrintWriter out = new PrintWriter( sw ) ;
 e.printStackTrace( out ) ;
}

こうだったよ。
0183いまさらパソコン親父NGNG
どうしてjavaはデストラクタいらないのですか?
0184エッチマンNGNG
デストラクタってなに? 死のトラクター?
G型トラクター売ります ってーとゴルゴ呼べるんだっけ?
0185仕様書無しさんNGNG
>>180
while(true)といっしょ。
0186デフォルトの名無しさんNGNG
>>185

C++の本にご丁寧に載っていたな。私はwhile(1)の方が好きだけど。
0187エッチマンNGNG
>>186
javaのスレだし、while(1)はやめとこう。
0188だめ板住人NGNG
for(;;){
statement;
}
無条件にstatementを繰り返すループ.
0189デフォルトの名無しさんNGNG
>>183
ガベージコレクタがオブジェクトを破棄するタイミングが不定なため。
いつ実行されるかわからない上に、もしかすると実行されないまま
終わるかもしれないけど、それでも良ければ、
代わりにファイナライザ使ってください。
0190デフォルトの名無しさんNGNG
Linux JDK 1.2.2 010 で
char aaa = 'あ';
とやると
Invalid character constant.
とエラーがでます。
なぜなのでしょうか?どなたかお教えいただけますでしょうか?
0191デフォルトの名無しさんNGNG
javac が日本語(EUC-JP?)を理解してないのでは?
0192デフォルトの名無しさんNGNG
>>190

少なくともCではchar型の場合、「あ」みたいな2バイト文字は文字列だぞ。
きっとJavaも同じ理由でしょう。
0193191NGNG
'あ' の代わりに '\u3042' ならどう?
0194デフォルトの名無しさんNGNG
>>192
Java は Unicode だから。
0195デフォルトの名無しさんNGNG
Solaris 1.2 でやったらうまくいきます。Windowsも。
JDKのバージョンは1.2で。
ソースの文字コードはEUCです。
ちなみに、
System.out.println( "はろー" );
はコンパイルもと通るし、実行も出来るんですが・・・・
0196デフォルトの名無しさんNGNG
ソースの文字コードが EUC だってこと、javac が解ってないよ。
コマンドラインオプションで指定できたはず。
0197190NGNG
>>196
-D オプションでしょうか・・・・?
そのあとなんて書いていいか分からない・・・・
0198デフォルトの名無しさんNGNG
>>192 Javaではcharは16ビットだよ。
0199デフォルトの名無しさんNGNG
javac xxx.java -encoding EUC_JP

↓参照
http://java.sun.com/products/jdk/1.2/ja/docs/ja/guide/internat/encoding.doc.html
0200190NGNG
>>199
おおおお!できました!大感謝です。
これってどっかで初期設定出来るのでしょうか・・・?
solarisではなんでOKだったのか(インストールは私じゃないので・・・)
0201デフォルトの名無しさんNGNG
>>200
プラットホームごとにJREがデフォルトで
エンコーディング決めうちしてんだよ。
何も指定しないとデフォになる。
Solarisなら当然デフォがEUCだろうな。
0202デフォルトの名無しさん NGNG
>>197
> -D オプションでしょうか・・・・?

って思った理由を聞きたいです。いや、あおりでも冷やかしでもないです。

参考に・・・
0203sagfeNGNG
だめだこりゃ。
0204sagfeNGNG
あげんな。
>>1には才能が全く無い。無理。
0205デフォルトの名無しさんNGNG
java.awt.Graphicsクラスってabstractじゃないですか。
で、大多数のメソッドがabstractなんだけど、例えば、
Graphics#drawOval()とかを呼んだ時に実際に楕円を描いたりするの
はどこでやってるんでしょうか?
0206デフォルトの名無しさんNGNG
What's new about javaってどこいったの?
一時的な閉鎖?
0207デフォルトの名無しさんNGNG
>>205
APIライブラリ内部のどっかの実装クラス。

Graphicsクラスインスタンス(正確には、Graphicsクラスの
サブクラスのインスタンス)は、Image.getGraphics()
とかで、APIライブラリの中で実装クラスのインスタンスを
取得して使う。

そういえばImage.getGraphics()もabstractだな。

ユーザがGraphicsを造ろうと思ったら、例えば
BufferedImageをnewしてgetGraphics()すれば、
Graphicsインスタンスが得られるぞ。
0208204NGNG
スレ違い御免!
0209205NGNG
>>207
情報サンクス。

で、なんだか気になったから
JFrame f = new JFrame();
Graphics g = f.getGraphics()
System.out.println(g.getClass().getName())
ってやったら(動作確認Windows)
sun.awt.windows.WGraphics
って出た。
これって…どゆこと?
JavaのAPIでは見たことないパッケージなんだけど…。
VMに定義されてるパッケージとそのクラス…?
なんか頭悪そうだな。俺。
誰か教えて…。
0210デフォルトの名無しさんNGNG
>206
あ、ほんとだ。しばらく見ない間に。
Night for Javaの準備で忙しいのだろうか。
明日行くけどねん。
0211デフォルトの名無しさんNGNG
java.awt.Graphics のサブクラス。
プログラマからは java.awt.Graphics としか見えないけど、
実際にはそこから派生したクラスが使われているってこと。
new Graphics って作った覚えは、ないでしょ?
いつもどこからか Graphics が提供される。

interface みたいなもんだと思いねえ。

OSや、JREを実装したベンダーによって、実際のクラスは異なる。
0212デフォルトの名無しさんNGNG
>>209
普通OOPのライブラリ内部には、外部に公開しない
無数のクラスがあるものだ。

俺様ライブラリにも、publicでないクラスがいっぱい
あるぞ。
0213デフォルトの名無しさんNGNG
あるファイルから整数だけを取り出してそれらを
int変数に保存するのってどうやるの?
ちなみにそのファイルの中身はパターンがなにも無い
0214デフォルトの名無しさんNGNG
ファイルを開いて1文字ずつ読み込んで
整数だけ抜き出すプログラムを書け
0215160NGNG
>>162さん
ありがとうございました。うまくいきました。
0216デフォルトの名無しさんNGNG
>>213
正規表現を扱えるクラスがどこぞにあったからそれ使って抜き出せば?
0217デフォルトの名無しさんNGNG
Javaがインストールされていない、環境でダブルクリック起動する方法ってありますか?
0218デフォルトの名無しさんNGNG
Java が「インストール」されてなくても、存在さえしてれば、
java.exe を探して起動するような小さい exe を用意しとけば良い
0219デフォルトの名無しさん NGNG
>>218
その exe ってなに? java.exeを探すってなに?
0220デフォルトの名無しさんNGNG
>>217
そもそも Java プログラムって
Java がインストールされてない環境で動くのか?
0221デフォルトの名無しさん NGNG
>>220
J++ で exe にコンパイルしておけばいい
0222デフォルトの名無しさんNGNG
>>221
見た目がexeなだけなので、JVMが入っていないXPでは動かないっす。
0223デフォルトの名無しさんNGNG
>>222
試してみた?
どういうエラーがでるか
誰かレポートキボン
0224デフォルトの名無しさん NGNG
>>222
「動かない」だけじゃわかんないです。どう動かないのか書かないとね。
0225デフォルトの名無しさん NGNG
JDK のバージョン差異について書かれたサイトってありますか?

なくなったもの、追加されたものなどを知りたいのですが。
0226デフォルトの名無しさんNGNG
なくなったものは、ないんでは?
ことごとく非推奨になっただけで

追加されたものは、Javaの各バージョンのドキュメントを見るよろし。
http://java.sun.com/docs/
0227デフォルトの名無しさんNGNG
void Func(String Hoge)
{
Hoge = "hoge value";
}
はダメなのか?
ストリングクラスはオブジェクトだから参照渡しになると思ったのだが…
いまさらながらストリング型の内容を更新する関数が必要になったのだが、
これって超基本?
0228 NGNG
>>227
Java参照渡しでは無いよ。参照のコピーを渡している。
無論基本中の基本。

Hogeへの参照 → Hogeの実態

このHogeへの参照を、そのFuncとやらのメソッドに渡すと
(ちなみにJavaではメソッドの頭文字は小文字にするのが標準的だけど)
Hogeへの参照のコピーが新たに作られて渡される。

だからHogeへの参照のコピーが"hoge value"を指し示そうと、
オリジナルのHogeへの参照には無関係となる。

ついでに言えば、Stringクラスは一度newしたらその内容を変更する事は
できません。

変更したい文字列をリターンすれば?
0229227NGNG
>>228
情報thanks! 大変役に立ちました。
C++ から流れてきたので、てっきり"="演算子が文字列内容書き換えの
メソドを呼ぶようにコンパイルして貰えてるものと思ってました。
値がコピーされたように見えたのは実は新たに別に作成されたインスタンス
への参照に書き換えられただけでしたか。いやー大勘違いでした。
基本は、個別の処理群が参照先を勝手に書き換えるってCみたいな手法で
コードを書くな(書けない)ってことですな。(…なんか違いそうだな)

227のコードは"Hoge"参照先の書き換えメソドを呼んでくれているイメージで
組んだところ(この考え自体Cっぽくて良くないのか?)値が返らなかったので、
もしかして呼出側が新たにインスタンスを作成して文字列をコピーしてから呼び出すという、
文字列の値渡しみたいなことしてるのかな?とか勘ぐって質問に至った次第です。
(VBでString型の値渡し指定すると本当にそうなる。解説しよう。VBでも"="演算子は参照先の挿げ替えではなく代入なのだ)
実際は仮引数の参照先を一生懸命書き換えてただけなのですな(笑
ちなみに、本当は返却したい値がもっとあるので文字列戻り値じゃやり難いです。
0230229NGNG
ちょっと訂正
×基本は、個別の処理群が参照先を勝手に書き換えるってCみたいな手法で
○基本は、個別の処理群が参照先の内容を勝手に書き換えるってCみたいな手法で
0231デフォルトの名無しさんNGNG
>>227
>void Func(String Hoge)
>{
> Hoge = "hoge value";
>}

C++で書くと、こんなイメージ

void Func(String* Hoge)
{
Hoge = new String("Hoge value");
}

呼び出し元のは、変わらんでしょう。
0232デフォルトの名無しさんNGNG
>>229
引数を使って値を呼出し元に返すことは通常Javaではやりません。
#配列を使えばやって出来ないことはないですが。

複数の値を呼出元に渡したい場合は
Cでいう構造体のようなイメージのクラスを作ってそこに値を設定して
リターン値として返すか、
値の数だけ
Hoge getHoge()
Moge getMoge()
Fuga getFuga() ,,,等の
取得関数を
呼ばれる側のクラスに用意して適宜取り出してもらいます。
0233デフォルトの名無しさんNGNG
>>43 >>66
>実行されるから、resultがtrueになるかと思うけど、その前にcatchの中で
>すでにresultは評価されてしまっているっちゅーことみたいね。

最後の行のreturnが実行されないから当然じゃないの?
>>44 に同意だが。
0234デフォルトの名無しさんNGNG
>What's new about javaってどこいったの?

あ、移転のお知らせがでてたのにブックマークしてなかった。
誰か知らない?
0235デフォルトの名無しさんNGNG
ttp://www.gimlay.org/~andoh/java/javanew.html
0236デフォルトの名無しさんNGNG
Java3D 1.3に高精度タイマーが・・・
com.sun.j3d.utils.timer.J3DTimer
0237デフォルトの名無しさんNGNG
>>236
おおう、それは良かった。

で、ホントに高精度?
下でなに呼んでるのかな?

タイマの精度が上がっても、スレッドのスケジューラ
が変化なけりゃ、普段のプログラムには意味無い気も
するけど。
0238234NGNG
移転age
( Thanx > >>235 )
0239デフォルトの名無しさんNGNG
path通らないんで、だれかおせーて。(マジほんき涙
正確なところをどーか。
0240デフォルトの名無しさんNGNG
>>239
http://www.gimlay.org/~javafaq/javafaq.html
http://www.google.com/
0241デフォルトの名無しさんNGNG
pathってなんのパスだ?classpath?
0242239NGNG
感謝感謝!!!チュ!
024366NGNG
>>233

>>実行されるから、resultがtrueになるかと思うけど、その前にcatchの中で
>>すでにresultは評価されてしまっているっちゅーことみたいね。

>最後の行のreturnが実行されないから当然じゃないの?

確かに66では、「当然のこと」を言っているんですけど、何か?
0244223NGNG
ならいい
0245デフォルトの名無しさん NGNG
>>241
path と classpath のちがいもわかんないのか?
0246241NGNG
もちろんわかるぞ。
239はclasspathの事が言いたいのでは無かろうかとおもって書いただけだが。
0247デフォルトの名無しさんNGNG
画面上のマウスカーソルの位置を取得する方法ってありますか?
0248213NGNG
>>214
>ファイルを開いて1文字ずつ読み込んで
>整数だけ抜き出すプログラムを書け

それがわかんないんだけど。
どーやって整数って判断するの?どーやってそれをintに変換するの?
0249デフォルトの名無しさんNGNG
 (\     ∧ ∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  \\/ (・∀・)<  >>248 芯でもいいよ!
   ( 。 /U U  \_____________
   U⌒U
0250だめ板住人NGNG
class A {
  void hello() {
    System.out.println("hello");
  }

  static void hello2() {
    System.out.println("hello2");
  }

  String toString() {      /* メソッドの修飾子が問題 
;*/ 
    return "class A with hello,hello2\n";
  }
}

public class GetInfo {
  public static void main(String args[]) {
    A obj = new A();
    System.out.println(obj.toString());
  }
}

上記のコードをコンパイルすると`スーパークラスでの定義より弱いアクセス特権(public)を割り当てようとしました'なるエラーが出ます.
メソッドの修飾子を変えて試してみた所
public->ok
public static->NG
static->NG
と言う結果になりました.
ここで疑問が湧いてきた事は,
1.publicより修飾子無しの方がアクセス特権は弱いがなぜ弱い特権でオーバーライドできないのか(なんらかの不都合があるのか)
2.なぜstaticでオーバーライドできないのか.(これも不都合がある?)
です.
仕様って言ったらそれまでなんでしょうが..
0251デフォルトの名無しさんNGNG
>>248
その、わからない事柄を、最初の質問で書かんか。

>どーやって整数って判断するの?

Character.isDigit

>どーやってそれをintに変換するの?

Character.digit または Integer.parseInt
0252デフォルトの名無しさんNGNG
>>250
疑問の1も2も、同じ理由だと思うよ。つまり、スーパークラスのインターフェイスを
サブクラスで変更してはダメということ。アクセス特権が弱くなるということは例え
ば、スーパークラスAでpublicだったメソッドmが、サブクラスBでprotectedになる
場合、それらを使用するクラスでは、
A a = new B();
a.m();
ができないということになる。これは、Aクラスのインターフェイスが勝手に変更され
るということで、ポリモーフィズムが成り立たない。漏れはそう理解しているけどね。



それまでスーパークラスとして可能だった
■ このスレッドは過去ログ倉庫に格納されています