【初心者】Java質問・相談スレ4【大歓迎】
レス数が950を超えています。1000を超えると書き込みができなくなります。
00011
NGNGなお、ソースを貼るときには、半角空白が消える仕様のため、タブ1つを全角空白2つに
置換してから投稿しましょう。雑誌や宿題などの疑問を質問するときは出展を明記した
ほうが解決が早いです。
関連情報は >>2-10 あたりにあります。 (一部 dat落ちやHTML化待ち)
JavaScriptの質問はWeb製作板へどうぞ。
web制作管理
http://pc.2ch.net/hp/
パソコンの基本操作に関しては、PC初心者板や、各OS板などで質問しましょう。
パソコン初心者@2ch掲示板
http://pc.2ch.net/pcqa/
上級者の方で教える技術が無い方は下記スレでダベりましょう。
初心者無視! Java相談室 その9
http://pc.2ch.net/test/read.cgi/tech/1021555964/
基本的にsage進行でおねがいします。
0856Rina ◆tI333vNE
NGNG落ち着けw 何エラーとかそういう問題じゃない.
mainメソッドの中にxの宣言が無いだけじゃないかw
>>853
質問の意図がよく掴めないんだが, moveメソッドの中の
変数xを参照しようとしているのかな?
public class sample {
public void move(String[] args) {
// ここでxを定義している?
}
}
public class hoge {
public static void main(String[] args) {
sample w = new sample(args);
w.move(args);
System.out.println(x);
}
}
もしこんな感じならxは表示できないよ. 対処法はケースバイケースだけど
xをsampleクラスのフィールドにするといいんじゃないだろうか. 例えば
こんな感じ.
public class sample {
// TYPEはdoubleなりintなりクラスなりお好きなものを.
public TYPE x;
public void move(String[] args) {
// ここで x をゴニョゴニョする.
}
}
public class hoge {
public static void main(String[] args) {
sample w = new sample();
w.move(args);
System.out.println(w.x);
}
}
これならうまくいくと思う. 詳しく, あるいは正しく理解したいのなら,
変数のスコープについて本やサイトで勉強するといいと思う. 頑張ってね.
0857デフォルトの名無しさん
NGNGお前、この質問にちゃんと答えて偉いな。俺は「moveメソッド内で
できた変数x」の表現から x を return で返してるかと思ったが。
0859デフォルトの名無しさん
NGNGsuper ( ... );
と書きますが、このコンストラクタが例外を持っているので、
try {
super ( ... );
} catch ( ... ) {
...
}
としたいのですが、super(コンストラクタ)の呼び出しは、
先頭文でなければいけませんと言われてしまいます。
こういう場合、スーパークラスのコンストラクタの例外は、
とれないのでしょうか。なにかいい方法はないんでしょうか。
0860デフォルトの名無しさん
NGNGサブクラスのコンストラクタも例外投げる宣言するのでは。どうしても
というなら、(ぜんぜんきれいじゃないけど) サブクラスかつラッパーな
クラスにするとか。
public class A{
public A() throws Exception{…}
public int hoge(){…}
}
public class B extends A{
private A a = null;
public B(){
try{
a = new A();
} catch(Exception ex){…}
}
public int hoge(){return a.hoge();}
}
0861デフォルトの名無しさん
NGNGpublic static void main(String[] args) throws Exception {
new Derived();
}
public Derived() throws Exception {
super();
}
}
class Base {
public Base() throws Exception {
throw new Exception("例外発生!");
}
}
ではどう?
コンストラクタで例外が発生したということは、そのインスタンスのすべての
メンバは不定値になるから、派生側でも同じ例外を投げるのが正しい。
catchしたところで意味のある処理をすることは不可能。
0862861
NGNG>サブクラスかつラッパーなクラスにするとか。
意味ないような・・・
0863Rina ◆tI333vNE
NGNG/** 実現したいであろうコンストラクタ */
public HogeClass(FugaClass arg) {
try {
super(arg);
} catch (XXXException e) {
// 例外処理
}
}
/** こんな風に書いたら? */
public HogeClass(FugaClass arg)
throws XXXException {
super(arg);
}
子クラス(この例だとHogeClassね)を使用する側でXXXExceptionに
ついての例外処理を行わないといけないけど, こっちの方がいいと思う.
どうしてもっていうんなら, 親クラスにしたいクラスのインスタンスを
子クラスに持たせて, 子クラスにラッパーを実装するって手があるが
あんましお勧めできない.
0864Rina ◆tI333vNE
NGNG0865デフォルトの名無しさん
NGNG返答ありがとうございます。
>>860
確かにそれなら例外とれますねー。
ただ、あんまりやりたくない方法ですね。
>>861
それだと、Derived ()は使う人に、
例外を通達できませんよねー。
0866860
NGNG出されるので例外宣言しなきゃコンパイルできないんだ。布団の中に
入って気がついた。
>>865
例外の通達が目的なら素直に throw してください。
0868デフォルトの名無しさん
NGNGいや、スーパークラスの引数有りのコンストラクタは、
例外が発生した場合、例外を使い手にスローしますが、
サブクラスでも同じように、使い手に例外をスローしたいのです。
もしかして、
public HogeClass(FugaClass arg) throws XXXException {
super(arg);
}
だけで、例外を使い手にスローしてくれますか?
0870861
NGNG>例外を通達できませんよねー。
ん?普通にできるけど。
例にExceptionを使ったのがまずかったか?
要するに基底クラスと同じ例外を投げる。Stream/Writer系のクラスは全部こうなってるはず。
0872861
NGNG> super(arg);
>}
>だけで、例外を使い手にスローしてくれますか?
861のコードはそのままコンパイル・実行できるから確かめてみるといい。
super(arg);
で例外が発生→catchされなかったら呼び出し元に例外が投げられる。
ごく普通の動作。
0873860
NGNGあまりにも糞な作りのクラス (他チーム製) をチーム全員に使わせる
ときやる方法だよ。API の仕様上は A でなければいけない、しかし
A クラスを素で使わせるとトラブル続出な予感、な時にチーム先発実装
部隊が後続部隊のためにやる方法。
0875860
NGNG0876861
NGNG0877Rina ◆tI333vNE
NGNG0880860
NGNG0882861
NGNG0883shige
NGNGhttp://feeds.directsex.com/res/kinky/res/liveindex1.asp
0884デフォルトの名無しさん
NGNG「System.out.printlnの出力結果って、どこに表示されるの?」
……いやぁ、デバッグ用にラベルを表示させたいだけなんですけどね(^^;
それとも、Exceptionが出るとSystem.out.printへの出力は消えちまうのだろうか?
もちろん環境により千差万別なのは判っているので、「まずはこの設定を見れ!」
という所から教えていただけると非常に助かります。何卒お助けを(拝)
0885デフォルトの名無しさん
NGNGjava.lang.SystemのAPIドキュメント
やろうとしてることは多分
java.lang.System#setOut(PrintStream out)
0886デフォルトの名無しさん
NGNGCのがよっぽどマシ!
だれかJavaの本質をレビューしてくれ!
Cのがいいだろ?!
0887デフォルトの名無しさん
NGNGに入れた値を
11 12 13
21 22 23
という風に行列表示したいです。
コマンドプロンプトでは縦に一列に並んでしまいます。
どうすればいいでしょうか?
0888デフォルトの名無しさん
NGNGお前は多分
System.out.println()したんだろ?そうじゃなくて
System.out.print(array[i][j])しれ。
0889デフォルトの名無しさん
NGNGあほくさ〜
0890デフォルトの名無しさん
NGNG>>5
0891デフォルトの名無しさん
NGNGclass Hello {
public static void main(String args[])
{
double [][] array = new double [2][3];
for(int i=0;i<2;i++){
for(int j=0; j<3;j++){
array[i][j]=Math.random();
}
}
System.out.println(array[i][j]);
}
}
を試してみました。
System.out.println(array[i][j]);
iやjを解釈処理できませんとでました。どうしたらいいのでしょうか?
0892デフォルトの名無しさん
NGNGと思って、ループ書いてみたのですが、うまくいきません。
これはどこがおかしいのでしょうか?
class Hello {
public static void main(String args[])
{
double [][] array = new double [2][3];
for(int i=0;i<2;i++){
for(int j=0; j<3;j++){
array[i][j]=Math.random();
}
}
for(int i=0; i<2;i++){
for(int j=0; j<3; j++){
System.out.println(array);
}
}
}
}
0893デフォルトの名無しさん
NGNGSystem.out.println(array);
0894デフォルトの名無しさん
NGNGでもやっぱり縦一列にでます。どうすればいいのでしょうか?
class Hello {
public static void main(String args[])
{
double [][] array = new double [2][3];
for(int i=0;i<2;i++){
for(int j=0; j<3;j++){
array[i][j]=Math.random();
}
}
for(int i=0; i<2;i++){
for(int j=0; j<3; j++){
System.out.println(array[i][j]);
}
}
}
}
0895デフォルトの名無しさん
NGNGありがとうございます。もうひとつヒントください。
0896デフォルトの名無しさん
NGNG0897デフォルトの名無しさん
NGNGふむ、なるほど、ありがとうございます。lnが余分でした。
やってみますた、今度は横一列に並びました。
縦2行横3列が希望なのですが、もう少しだけお願いします。
0898デフォルトの名無しさん
NGNG}
System.out.println();
}
}
}
0899デフォルトの名無しさん
NGNGfor(j){
print(array[i][j]);
}
println("");
}
0900デフォルトの名無しさん
NGNG見やすくするのはあきらめました。printlnprintの違い覚えました。どうもありがとう。
これを一回実行するごとに2×3の行列が得られるので、その結果を
一回ずつ、テキストファイルにしたいのですが、どうすればいいでしょうか?
class Hello {
public static void main(String args[])
{
double [][] array = new double [2][3];
for(int i=0;i<2;i++){
for(int j=0; j<3;j++){
array[i][j]=Math.random();
}
}
for(int i=0; i<2;i++){
for(int j=0; j<3; j++){
System.out.println(array[i][j]);
}
}
}
}
0902デフォルトの名無しさん
NGNGこうやって改行すればいいんですね。勉強になりますた。
class Hello {
public static void main(String args[])
{
double [][] array = new double [2][3];
for(int i=0;i<2;i++){
for(int j=0; j<3;j++){
array[i][j]=Math.random();
}
}
for(int i=0; i<2;i++){
for(int j=0; j<3; j++){
System.out.print(array[i][j]);
}
System.out.println();
}
}
}
0903Rina ◆tI333vNE
NGNG2とか3とか決めうちせずにarray.lengthを使うといい.
for(int i = 0 ; i < array.length ; i++) {
for(int j = 0 ; j < array[i].length ; j++) {
System.out.print(array[i][j]);
}
System.out.println();
}
あとでサイズが変わってもいいようにね.
0904デフォルトの名無しさん
NGNGどうもありがとうございます。すぐそうしたいと思います。
自分でもSystem.out.print(array[i][j]+",");
をいれて、さらに見やすくしました。コマンドプロンプト上でしか
結果を見れないのですが、やはりこの結果を一回ずつ>>902でした
質問のようにテキストファイルにしていくというのは難しいのでしょうか?
0905853
NGNGありがとうございました
おかげでうまくいきました
分かりにくい質問に丁寧に答えてくれてありがとうございました
0906デフォルトの名無しさん
NGNGなぜでしょうか?どなたか教えてください。
class Hello {
public static void main(String args[])
{
int s=2;
int t=3;
double [][] array = new double [s][t];
for(int i=0;i<array.length;i++){
for(int j=0; j<array.length;j++){
array[i][j]=Math.random();
}
}
for(int i=0; i<array.length;i++){
for(int j=0; j<array.length; j++){
System.out.print(array[i][j]+",");
}
System.out.println();
}
}
}
0907デフォルトの名無しさん
NGNG0908デフォルトの名無しさん
NGNGふみゅ、そうでし・・。array[i].lengthでした。なおりました。
ありがとうございました。
0910デフォルトの名無しさん
NGNGぐほっこれは難しいですね。ヘッダーにこーゆークラスを読み込んで
つかうのでしか?あまりプログラミングをわかってないので、
できそうにないです。まずDOSプロンプトから一回ごとに自動的に
カットアンドペーストする方法を探してみます。
0911デフォルトの名無しさん
NGNGなんでカットするの?
0912860
NGNGC:\> java Hello > hoge.txt
0913デフォルトの名無しさん
NGNG0914デフォルトの名無しさん
NGNGhttp://pc3.2ch.net/test/read.cgi/win/1027492185/267
0915デフォルトの名無しさん
NGNG>カットアンドペーストする方法
DOSプロンプトを作り直す勇者か?
0916デフォルトの名無しさん
NGNGファイルを作るなよ わざわざ
>>913
教える気のない上級者は(略
0917デフォルトの名無しさん
NGNG秀丸使ってごらん
0918デフォルトの名無しさん
NGNGカットしなくてよかでした。>>912で教えてもらった方法で
乱数が行列でならんでいるテキストファイルを作成できました。
>>912
できました。こういう書き方あるんですね。
>>914 >>915
やっぱりできないですか?さっきの質問さらされるほど変ですか?
あのすみませんけど、>>912さんに教えてもらった方法
C:\> java Hello > hoge.txt
これを毎回するのはちょっとしんどいので1000回いっぺんにやる方法を
教えてもらえませんか?1000通りくらい乱数の行列あると便利なんです。
お願いします。
0919デフォルトの名無しさん
NGNGHelloを書き直せ
0920デフォルトの名無しさん
NGNG1行をコピペすると2行
2行をコピペすると4行
4行をコピペすると8行
...
512行をコピペすると1024行
0921デフォルトの名無しさん
NGNG教えてもらった義理があるので、あえて言わせてもらいますが、
僕はファイルを作る方法を質問しました。だから、ファイルを
作れて満足しています!
0922デフォルトの名無しさん
NGNGフ ァ イ ル ま ん せ ー ー ー ! ! !
0923デフォルトの名無しさん
NGNG満足したのなら帰れ。
0924デフォルトの名無しさん
NGNGいじけるなよ
0925デフォルトの名無しさん
NGNGを1000回繰り返す方法は茶化しているわけではなく本気で
質問しています。煽ったみたいですいません。
>>919
書き直すポイント教えてください。お願いします。
0926デフォルトの名無しさん
NGNG>>921
0927デフォルトの名無しさん
NGNGmainの中身をforで囲めばいいじゃん。
0928Rina ◆tI333vNE
NGNGfor i in $(seq 1 1000); do java Hello >> hoge.txt; done
でできるんだけど.
0930デフォルトの名無しさん
NGNGありがとうございました。
>>927
ちょっと試してみます。
>>928
cygwin入れているので、試してみます。
0932デフォルトの名無しさん
NGNGここは保育園ですか?
0933デフォルトの名無しさん
NGNGそういうのやめてね。
0934デフォルトの名無しさん
NGNG勉強にはなるんじゃない?
0935Rina
NGNGセクハラはやめてください!
0936デフォルトの名無しさん
NGNGでした。でもよく考えたら自分のにはLinux用のJAVAはいっていません・・・。
やはりDOS窓に関する質問のようです。ありがとうございます。
>>927
これだと、乱数の発生数が1000になってしまう
ことに気づきました、ここでやっと、6000個発生させて6個ずつ組
になるようにtxtを加工しても得られる結果は一緒だと気づきました。
こっちのほうが簡単そうです。ありがとうございました。
0938sage
NGNGC:\>javac Hello.java
C:\>java Hello
でいつも実行しています。
>for i in $(seq 1 1000); do java Hello >> hoge.txt; done
幸運にも?javaを1000回実行しなくてすんだのですが、
Helloを実行するときにjavaと書かなくてもいいのでしょうか?
#ずっとageで書いていてすいません。忘れていました。
0939デフォルトの名無しさん
NGNG0940Rina ◆tI333vNE
NGNGdoの後にjavaがあるよ.
>bash: Hello: command not found.
って出たのは, このjavaが抜けてたんでない?
0941デフォルトの名無しさん
NGNG0942デフォルトの名無しさん
NGNG0944デフォルトの名無しさん
NGNGそうでし・・JAVA抜けていました。CYGWINはやはり使いこなせないので
あきらめました。
0945デフォルトの名無しさん
NGNG>>942はいろいろ教えてもらった僕ではありませんので、
たぶんさっきからハエみたいに僕をあおっていたヤシだと
思います。質問厨ですまそ>>>942
いろいろ教えてくれてありがとうございました。RINAさん。
0946デフォルトの名無しさん
NGNG0947デフォルトの名無しさん
NGNG0948デフォルトの名無しさん
NGNG0949デフォルトの名無しさん
NGNG↓こいつ?
http://www7.big.or.jp/~mb2/bbs/up/img-box/img20020731154949.jpg
0950デフォルトの名無しさん
NGNG0951デフォルトの名無しさん
NGNGヘルメットで顔がはっきりわからないのだが?
0952デフォルトの名無しさん
NGNGttp://www7.big.or.jp/~mb2/bbs/up/img-box/img20020731155051.jpg
0953デフォルトの名無しさん
NGNGだれか再うpして!!
0954949
NGNG0955デフォルトの名無しさん
NGNGレス数が950を超えています。1000を超えると書き込みができなくなります。