トップページ⇒tech
1001コメント366KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
   ∧  b
  /●ヽ/
 (∧_∧)  / ̄ ̄ ̄ ̄ ̄
 ( ´∀`)< パート10に突入しますた
 (    )  \_____
 | | |
 (__)_)

関連情報は >>2-20 あたりにあります。 (一部HTML化待ち)

Google で検索 ⇒ http://www.google.co.jp/
JavaFAQ で探す ⇒ http://www.gimlay.org/~javafaq/javafaq.html
ご要望によりじゃばこサイト ⇒ http://www.javaco.org/

JavaScriptの質問はWeb製作板へどうぞ。
web制作管理
http://pc.2ch.net/hp/

パソコンの基本操作に関しては、PC初心者板や、各OS板などで質問しましょう。
パソコン初心者@2ch掲示板
http://pc.2ch.net/pcqa/

上級者の方で教える技術が無い方は下記スレでダベりましょう。
初心者無視! Java相談室 その9
http://pc3.2ch.net/test/read.cgi/tech/1021555964/

基本的にsage進行でおねがいします。また煽り厨は放置でお願いします。
http://pc.2ch.net/tech/kako/1026/10266/1026601774.html
0232228=230NGNG
>>231
staticなクラスなんて初めて知ったよ.調べてみよ.
どうもありがとう! m(_ _)m
0233228NGNG
class Sample {
    public Sample(){}
    public static void main(String[] args){
        Sample sample = new Sample();
        ...
        Collections.sort(v, sample.new XComparator()); //
        ...
    }
    class XComparator implements Comparator {
        public int compare(Object o0, Object o1) {
            ...
        }
    }
}
-------------------------------------------------------------------------
class Sample {
    public Sample(){}
    public static void main(String[] args){
        ...
        Collections.sort(v, new XComparator()); //
        ...
    }
    static class XComparator implements Comparator {
        public int compare(Object o0, Object o1) {
            ...
        }
    }
}

どっちでも良かった.
InnerClassがどういったものか少し分かった気がする.
0234デフォルトの名無しさんNGNG
JDK1.3って
今、5,473,768しかサイズないけど
30M近くあるものじゃないの??
0235デフォルトの名無しさんNGNG
圧縮してるんだろ。
0236デフォルトの名無しさんNGNG
if (p0.x > p1.x) return 1;
else if (p0.x == p0.x) return 0;
return -1;

↑はじめて見ました。こんな書き方もできるんですか?
0237デフォルトの名無しさんNGNG
return p0.x - p1.x;
0238デフォルトの名無しさんNGNG
elseいらんね。
0239228NGNG
>>237
もともとはp.x, p.yがdouble型だったので名残でそう書いたんだけど,
double型でも,
return (int)(p0.x-p1.x);
で行けるね!

>>238
まあ,そうなんだけど↓のように書いた方が意味的に理解し易いはず.
if (p0.x > p1.x) {
    return 1;
} else if (p0.x == p1.x) {
    return 0;
} else {
    return -1;
}
0240デフォルトの名無しさんNGNG
>>239
double だと p0.x が 0 p1.x が 0.1 みたいな場合があるので
return (int)(p0.x-p1.x); だとマズいような。
0241228NGNG
>>240
そうかー,そうだね.
>>239の発言は間違いです.m(_ _)m
0242デフォルトの名無しさんNGNG
状況に応じた処理。

if文
if else文
if else if else文
switch文case,default

繰り返す

for文
while文
do while文
0243デフォルトの名無しさんNGNG
kopiのkjcについてくるksmってjava classfile assemblerというらしいんだけど、どんなもん
なのか知っている人いる?
0244111NGNG
>>111です
>>134のソースのエラーの
原因が解る方いませんでしょうか?
未だになぞが解けません。
よろしくお願いします。
0245デフォルトの名無しさんNGNG
>>244
>>141のは確認した?
0246111NGNG
>>245
すいません確認してませんでした。
というより読みとばしていました。
原因はまさにこれでした。
お騒がせいたしました。
ありがとうございます。
0247デフォルトの名無しさんNGNG
つい昨日Javaのプログラムを始めました
配列を作ってfor文で配列に数値を入力したいのですが
このままだとコンパイルはできても実行時に
Exception in thread "main" java.lang.NoSuchMethodError: main
というエラーが出てしまいます、どなたか間違っている部分の指摘お願いします
public class test
 {
 public static void main()
  {
  int i;
  int box[];
  box = new int[10];
  for (i = 0; i < 10; i++)
   {
   box[i] = i;
   }
  }
 }
0248デフォルトの名無しさんNGNG
public class test
 {
 public static void main(String[] arg)
  {
  int i;
  int box[];
  box = new int[10];
  for (i = 0; i < 10; i++)
   {
   box[i] = i;
   }
  }
 }
0249デフォルトの名無しさんNGNG
public static void main(String args[])
0250デフォルトの名無しさんNGNG
ageてしまった上にかぶってたねすまん。
ってか出力は無しでいいの?w
0251249NGNG
>>250
俺も思ったが気にするな。
0252248NGNG
間違えた249じゃなくて248だった・・・・・・欝打詩嚢
0253247NGNG
(TдT) アリガトウゴザイマス
出力は今つけてるところですw

ところで
public static void main(String args[])
のString args[]っていうのが、まったくもって理解不能なのですが・・(´Д⊂グスン
あと戻り値っていうのは何でしょうか?

お暇な方よろしくお願いします
0254247NGNG
すいません、説明不足でした
String args[]自体の意味は分かるんですが
どうしてメソッド名のところに(String args[])
ってあるのかがわからないんです・・
0255デフォルトの名無しさんNGNG
引数
0256デフォルトの名無しさんNGNG
>>253
JVMが
public static void main(String[])
というメソッドを見つけて最初に実行するんだよ。
『public static void main()』と『public static void main(String[])』は違うメソッド(overload)だから
最初に実行するメソッドが無いってんで、JVMに怒られる
0257247NGNG
なるほど!!
ありがとうございます〜
0258デフォルトの名無しさんNGNG
//for文をネストする。

for(int i =0 ; i<5 ; i++){
for(int j =0 ; j<3 ; j++){
System.out.println("iは"+ i +";jは"+ j);
}
}

初めは i++ と j++ は動かないでprintlnだけが動くから最初の出力は
「iは0j;は0」となるの?





0259デフォルトの名無しさんNGNG
>>258
そのくらい、ちょちょいとやってみれ。
0260221NGNG
>>222
そのまさかです!そうか、これは間違ったやりかたなのですね。。
とりあえず勉強がてらこのままいきます。

>>223
 おはずかしいのですが何をいっているのかもわかりません(泣)、、勉強します、、
サーバープログラムではなく、クライアントでMYSQL+JDBCでちょっとしたものを作ろうと思っています。
0261デフォルトの名無しさんNGNG
>>260
こればかりは確実に知っておいた方がええよ。
最悪アプリケーションとアプレットの違いだけは知っておいた方がいい。
0262デフォルトの名無しさんNGNG
>>258
1行目だけかい!
そりゃ0、0に決まってんじゃないw
自分で初期値0でおいてるんだから
0263デフォルトの名無しさんNGNG
上のほうで被った行のみ取り出すのと
被らなかった行だけ取り出すものの質問をした者ですが、
おかげさまで出来ました。ありがとうございます!

で、結局Vectorを用いてやったのですが、
ArrayListとの違いがよくわからなかったのですが・・
どうゆう場面でVector、ArrayListを使い分けたらいいんでしょうか?

あと一つのアクションリスナーで計算1の結果を出して
その値を用いて2という結果を出したのですが、
もう一つのアクションリスナーで2の値を用いたい時、
また同じプログラムを書かなければならないのでしょうか?
これまた初心者な質問ですがよろしくお願いします。
長文失礼しました。
0264247NGNG
またまた質問です
Calendarクラスのメソッドで
カレンダーAとカレンダーBの日付を比較して
日数を求めるようなものを見かけた気がしたのですが
どれだか分からなくなってしまいました
このメソッドを知っている人いませんか?
0265デフォルトの名無しさんNGNG
2ch公式ガイドで「初心者歓迎と書いてあっても何が書いてあるか
さっぱり分からない、ム板は初心者のレベルが違う(内容が高度)」と
書いてあったけど、初心者歓迎なんて書いてあるののは、このスレだけ
だよな…
0266デフォルトの名無しさんNGNG
VectorよりHashtableを使ったほうが処理速度が速いと聞きましたが
本当でしょうか?
0267 NGNG
電話番号とかをパラメータとして与えて
ダイヤルアップ接続するようなプログラムを
作りたいんですけどそういう関係のメソッドを
いくつか持ってるクラスってありませんか?
知ってる方教えてください。
0268デフォルトの名無しさんNGNG
>>267
Java Telephony API (嘘)
0269デフォルトの名無しさんNGNG
>>36
圧縮、展開プログラムでたくさん使った。
メモリイメージバッファつかったグラフィック表示でも使いまくった。
数値としてで無く、ビットの並びとして値を扱いたいとき結構使う。
0270デフォルトの名無しさんNGNG
>>266
キーが0以上の整数で隙間が少ないときはVectorのほうが早い。
Hashtableは普通キーが文字列その他オブジェクトのときに使う。
0271266NGNG
>>270
回答ありがとうございます。
出来れば、なぜ早いかも教えてください。
Vectorは、無駄なロックが発生して遅いとか聞きましたけど・・・
どうなんでしょう?
0272名無しさん@EmacsNGNG
>>271
それって元の話は、Vector より Hashtable が速いって話じゃなくて、
Vector より ArrayList が速い
Hashtable より HashMap が速い
って話じゃないの?
0273266NGNG
>>272
そうなんですか!
てっきり VectorとHashtableかと思ってました。
ありがとうございます。
0274名無しさん@EmacsNGNG
>>273
というか元の話のでどこに確認しろよ。
0275デフォルトの名無しさんNGNG
>>273
違いってどうなんだろうね?
昔はVectorしかなくて、下位互換のために残ってるとか何とか
聞いたような気がしないでもないけど、よくわからんっす。

ちなみにVectorはデフォルトでsynchronized
0276デフォルトの名無しさんNGNG
端末Aのマイクで拾った音を端末Bにてライブストリーミングで聞きたいのだけど、
JMFサンプル見ても、どういう手順を踏めばいいのかいまいちわからんです。

やったことある方いませんか?
0277デフォルトの名無しさんNGNG
>>276
JavaCookBook買えっ!
日本語版7000円だけど、英語版なら5000円ぐらいで手に入る
0278276NGNG
>>277

それはどこで手に入るのれすか?
JAVA関係の本はよく見て周るのれすが、聞いたことも見たことないのれすけども。
0279276NGNG
もしかして、本じゃないのれすか。
APIなのれすか?

JMFでは実現は不可能なのれすか?

教えて君スマソ
0280デフォルトの名無しさんNGNG
コレクションの速度は、そのコレクションをどう使うかによる。
格納方式が違うコレクション同士のどっちが早いかなんて、一概に言
えるわけないじょ。

参照オンリーでキー値が番号ですむなら、配列かArrayList。
StackやFIFOキューがやりたいならLinkedListがベスト。

参照更新が頻繁に発生するコレクションなら、ハッシュ(Setか
Mapかは用途次第)つかっといた方がよいでしょうが、サーバサ
イドでつかうような場面で延々と更新が発生するようで、且つ
キーがシノニム発生しやすいなら、オープンアドレス法つかって
るコアAPIのHashtableだとちょっとまずいかも。

↑APIのソース読めば、どうしてこういう結論になるのかすぐ分か
るじょ。
0281デフォルトの名無しさんNGNG
Jakarta Commonsのcollectionsにある
FastArrayListとかFastHashMapとかはあんまりはやってねーNo?
0282デフォルトの名無しさんNGNG
つぅかVectorはダメですか?
0283デフォルトの名無しさんNGNG
>>282
なにがよ?
0284デフォルトの名無しさんNGNG
>>281
バージョン1.0までぼろくそだったから。
たぶん、このスレの住民大半が作れるレベルのコレクションでした。
これからに期待。
0285デフォルトの名無しさんNGNG
Jakartaプロジェクトってソース読むと、設計は賢くて、見通しが
よくてたすかる(手元でちょっと改造してつかうときとか)んだけ
ど、実装は変なの多いね。設計者だけ賢くてPG担当は頭悪いひとが
おおいのかな?
0286デフォルトの名無しさんNGNG
>>280
シノニムが発生するってどういう事?
0287デフォルトの名無しさんNGNG
>>286
ハッシュ計算の結果、異なるキーが同一のハッシュ値になること。
0288デフォルトの名無しさんNGNG
以前、テスト用の計算機を作ったものです。
皆さんいろいろアドバイスいただいて助かりますた。
いまではAWTからSwingに換えて、いろいろ機能つけたり(スプラッシュ画面やアイコン)して遊んでます。

そこでまた疑問持ってしまったところがあるのでおしえてくだはれ。

�@jarに固めたけどVBやDelphiで作ったようなexeを一回クリックするだけで起動と言うことができない
 (つまりDOSからjava -jar XXX.jarといちいちうたなければならない)のでどうしてもDOS画面が同時
 に出てる状態になる。んでそれを解消したいと思ってまふ。できればVBなどと同じようにクリックだけでexe(jar)を起動したい。

�Ajarのアイコンを変えたい。

以上の二点だす。
私寝ますので明日レス期待して待ってまふ。
んではお休みなさい。
0289デフォルトの名無しさんNGNG
�@Win98/NT以降ならExecutableJARはダブルクリック
起動設定済みのはずですが?
�AEXEからJVM起動するようなランチャーつくるか、リンク
ファイルにアイコンつけてください。
0290い ◆Ez1ZxZMJoU NGNG
>>281
FastArrayList は、また別の目的だと思う。Deprecated.になってるし。
readはロックなし、writeは別のArrayListインスタンス生成になってる。
>>288
.jarのアイコン取得は、COMにさせるようにSUNにContributeする。
JavaWebStartにアイコン取得させる。
0291デフォルトの名無しさんNGNG
interface A{
void a();
}
class B implements A{
void a(){
System.out.println("a");
}}
class Test{
public static void main(String args[]){
B b=new B();
b.a();
}}
でクラスBのa()メソッドの前にpublicをつけないと「スーパークラスでの定義より
弱いアクセス特権(public)を割り当てようとしました」と出、コンパイルが
とおりません。どうしてでしょうか?
どなたかご教授してください。
0292デフォルトの名無しさんNGNG
初心者な質問です。
size()で取得したint型の定数を
String型にするにはどうしたらいいのでしょうか?
(String)a.size()ではだめですよね?
0293デフォルトの名無しさんNGNG
Integer.toString(a.size());
0294デフォルトの名無しさんNGNG
293さんどうもありがとうございます
0295デフォルトの名無しさんNGNG
>>291
メソッドのアクセス権は
private, 無指定(パッケージプライベート), protected, public と4つあって、
public を付けないのは「publicを省略した」のでなく、
「無指定(パッケージプライベート)を指定した」と解釈されるから。
0296デフォルトの名無しさんNGNG
>>291
で、interface のメソッドは全て
暗黙のうちに public abstract であると解釈される。
つまり public abstract void a(); を [無指定] void a() で
上書きしようとしたから怒られたわけね。
0297デフォルトの名無しさんNGNG
>>295さんレスありがとうございます!
メソッドに修飾子をつけない場合
そのようなメソッドには同じパッケージ内のコードからしか
アクセスできないと参考書に書いてるのですが、
>>291の場合クラスBとクラスTestは違うパッケージということですか?
また、インターフェースではなくサブクラスとして継承したばあい、
abstract class A{
abstract void a();
}
class B extends A{
void a(){
System.out.println("a");
}}
publicをつけなくてもコンパイルがとおります。
となると、インターフェースを実装したクラスは違うパッケージと
なるということでしょうか??
日本語下手+初心者的な質問で申し訳ありません。
0298デフォルトの名無しさんNGNG
>>297
>>291の場合クラスBとクラスTestは違うパッケージということですか?
違う。 Java のアクセス制御の関係で、
public void a() を private void a() で上書きするみたいに
緩いアクセス制限を持つメソッドを キツいアクセス制限で
上書き出来ないから怒られただけ。パッケージはあんまし関係ない。

abstract class は interface と違ってメソッドに
暗黙の public abstract がつかないから、
[無指定] abstract void a(); を [無指定] void a() で上書きしてる。
0299デフォルトの名無しさんNGNG
>>298さん
わかりやすい説明ありがとうございました!
おかげで疑問が一つ解けました。
感謝感謝。
0300デフォルトの名無しさんNGNG
質問です
Dish1 makeAssort(int n) {
Dish1 []a;
if (n > 0) {
a = new Dish1[10];
for (int i=0; i<10; i++) {
a[i] = makeAssort(n-1);
}
return new Dish1(new Dish10(a), 0.66f);
} else
return new Dish1(new OrangeCake(), 0.66f);
}
例えばa[0]には、何が入れられているのでしょうか?
それと、return new Dish1(new Dish10(a), 0.66f);の部分はDish1にDish10にa
を入れた値と0.66fという値が入るのでしょうか?
よろしくお願いします
0301デフォルトの名無しさんNGNG
http://www.dream-express-web.com/space-trust.htm

目からうろこの情報。
0302デフォルトの名無しさんNGNG
String s="abc";
と、
String s=new String("abc");
では、どう違うの?
0303ぉ ◆Ez1ZxZMJoU NGNG
>>300
何かの本の抜粋で、継承とかの説明なのでしょうけど。
きっと、あなたにとって、(他の部分で)難しい例題なのでしょう。同じ解説で、他の本を探してみましょう。
Javaの再帰呼び出しって結構浅いスタックで例外が出るんですよね。
>>302
どうなんでしょうね。僕は上の方が読みやすいと思うけど。
Javaの "abc".length() とか、C-lang の "abc"+i とかそんなのどこにも
説明無いよー。って思います。
0304ぉ ◆Ez1ZxZMJoU NGNG
>>300
実際に動かして、どうなるか、見てみるのが近道では無いかと。
0305ぉ ◆Ez1ZxZMJoU NGNG
>>300
俺ふらふらだなー。
どういう本なのか想像つかないしー。
どういうふうに分らんのか想像つかないしー。
0306デフォルトの名無しさんNGNG
>>302
同じです。

>>303
Stringクラスの説明にのっていた気がする。
0307デフォルトの名無しさんNGNG
>>306
ちげーよ
0308306NGNG
>>307
まじっすか!?
0309デフォルトの名無しさんNGNG
自作自演、か?
0310302NGNG
なんか変TT
なぜこんなことが起こるの??

String s1 = "ABC";
String s2 = s1;
if(s1==s2){
System.out.println("Object Equal 1");
}
String sc = "ABC";
if(s1==sc){
System.out.println("Object Equal Const1");
}
0311デフォルトの名無しさんNGNG
Integer.toStringのソース見たけど面白い。
0312デフォルトの名無しさんNGNG
String s1 = "ABC"; ⇒ (クラスに対して) 静的な "ABC" というリテラルを s1 に参照させる
String s1 = new String("ABC"); ⇒ "ABC" という文字列インスタンスを毎回生成して s1 に参照させる

コンパイラはソース中の同一文字列リテラルを一つにまとめてクラスファイルを作る。
duplicate string marge という奴。
0313302NGNG
>>312
すべての疑問が解けました
ありがとう。
0314デフォルトの名無しさんNGNG
Marge /mツ:rds/, Margery /mツ:rdsiri/, Margie /mツ:rdsi/
慥女子の名:Margaretの別称.

Progressive English-Japanese Dictionary, Third edition ゥ Shogakukan 1980,1987,1998/プログレッシブ英和中辞典 第3版 ゥ小学館 1980,1987,1998
0315デフォルトの名無しさん ◆M0CeFfecTQ NGNG
*merge

merge /mニ:rds/
曠曦[�V慥(慱)]
1 …を合併[併合]する,…を(…と)合併させる《 with... 》
〜 one company with another  ある会社を他の会社と合併する
The small companies were 〜d into a large company.  小さな会社が合併して大会社になった.
2 (徐々に)…を変える;…を(…に)混ぜ合わせる,同化[解消]させる《 with, in, into... 》
His sorrow was gradually 〜d into anger.  彼の悲しみはしだいに怒りに変わっていった.
━ 昿
1 [�T(慱)]結合する,(…に)吸収される;(徐々に)変わる《 together/in, into... 》;(…と)合併する《 with... 》
The Ohio River 〜s into the Mississippi River.  オハイオ川はミシシッピ川に合流する
The twilight 〜d into darkness.  夕やみがしだいに深まっていった
He 〜d into the crowd.  彼は人ごみの中へ消えた
M〜. 《交通標識》 合流注意.
2 《米俗》結婚する.
語源 ラテン語mergere(浸す)
m駻・gence慥

Progressive English-Japanese Dictionary, Third edition ゥ Shogakukan 1980,1987,1998/プログレッシブ英和中辞典 第3版 ゥ小学館 1980,1987,1998
0316300NGNG
>>303
ありがとうございました
他の本にあたってみます
0317デフォルトの名無しさんNGNG
すいません。
XPです。ジャバアプレットで
WAUをオトしたいのですが、コンパイルできません。
DOS窓でJAVACをやると「内部コマンド外部コマンド、プログラム、パッチとして認識されていません」と出ます。
どうしたらいいのでしょうか。
宜しくお願いします
0318デフォルトの名無しさん ◆j7iEFfECto NGNG
DOS窓って?
0319デフォルトの名無しさんNGNG
ブロンプトです。
0320デフォルトの名無しさんNGNG
レスありがとうございます!
0321デフォルトの名無しさんNGNG
PATHを無理矢理通せ!
0322デフォルトの名無しさんNGNG
public class test3 {
public static void main(String[] args) {
String a = "";
String b;
boolean kk = false;
kk = Check(a,b);
System.out.println(kk);
}
public boolean Check(String na, String co) {
if (na == null || co == null) {
return false;
}
if (na.compareTo("") == 0 || co.compareTo("") == 0) {
return false;
}
return true;
}
}
なぜエラーが出るのか解らないのですが
アドバイスもらえないでしょうか?お願いします。
0323デフォルトの名無しさんNGNG
>>322
ちゃんと見てないから他にもあるかも…
>public boolean Check(String na, String co) {
public static boolean Check(String na, String co) {
0324デフォルトの名無しさんNGNG
>>323
ありがとうございます。
static 付けてみたのですがダメでした。
エラーは
Check(java.lang.String, java.lang.String) は静的ではありません。Check(java.lang.String, java.lang.String) は静的ではありません。
と出ます。
お願いします。
0325322NGNG
>>32
よく見てみたところ
static を付けたら違う所でエラーが出ていて
解決しておりました。
ありがとうございます。
0326デフォルトの名無しさんNGNG
javaでdos画面に文字列を表示させようとすると文字化けしてしまいますのですが,
どうすればいいのでしょうか?教えていただけないでしょうか?お願いします。
0327デフォルトの名無しさんNGNG
 326で質問をしたものですが、
自分はswingでウィンドウを作って,そこに文字を表示させたいときにもだめなのです。
 又、static fieldがオブジェクト間で共有されるのはわかるのですが、
static修飾詞をメソッドにつけるとどうなるのですか.どなたか教えてください。
0328名無しさん@EmacsNGNG
>>326
文字化けしないようにすればいいんじゃないでしょうか?
0329名無しさん@EmacsNGNG
>>327
staticになります
0330デフォルトの名無しさんNGNG
>>326
>>328みたいなやつには怒ってもいいんでございますよ。
0331デフォルトの名無しさんNGNG
日本語を使わない。
■ このスレッドは過去ログ倉庫に格納されています