ネタ心者歓迎!今更ながらにJava相談室 その2
■ このスレッドは過去ログ倉庫に格納されています
00011
NGNG| 先輩!Javaの質問はこのスレでしましょう。
\
 ̄ ̄ ̄|/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ・∀・) ∧ ∧ < カキコする前に>>2-10をチェックしとけやゴルァ!!
( ⊃ ) (゚Д゚ ) \_________________
 ̄ ̄ ̄ ̄ ̄ (つ_つ__
 ̄ ̄ ̄日∇ ̄\| BIBLO |\
 ̄ ======= \
>>2 過去スレ
>>3 Javaの基礎がわかるリンク
>>4 サーブレットとかJSPとかサーバサイドとか携帯電話
>>5 Javaを撲滅させたい方、死滅を心配してる方用
*諸般の事情によりリンクがずれる事もあります。
0232デフォルトの名無しさん
NGNG引数を使って値を呼出し元に返すことは通常Javaではやりません。
#配列を使えばやって出来ないことはないですが。
複数の値を呼出元に渡したい場合は
Cでいう構造体のようなイメージのクラスを作ってそこに値を設定して
リターン値として返すか、
値の数だけ
Hoge getHoge()
Moge getMoge()
Fuga getFuga() ,,,等の
取得関数を
呼ばれる側のクラスに用意して適宜取り出してもらいます。
0233デフォルトの名無しさん
NGNG>実行されるから、resultがtrueになるかと思うけど、その前にcatchの中で
>すでにresultは評価されてしまっているっちゅーことみたいね。
最後の行のreturnが実行されないから当然じゃないの?
>>44 に同意だが。
0234デフォルトの名無しさん
NGNGあ、移転のお知らせがでてたのにブックマークしてなかった。
誰か知らない?
0235デフォルトの名無しさん
NGNG0236デフォルトの名無しさん
NGNGcom.sun.j3d.utils.timer.J3DTimer
0237デフォルトの名無しさん
NGNGおおう、それは良かった。
で、ホントに高精度?
下でなに呼んでるのかな?
タイマの精度が上がっても、スレッドのスケジューラ
が変化なけりゃ、普段のプログラムには意味無い気も
するけど。
0239デフォルトの名無しさん
NGNG正確なところをどーか。
0240デフォルトの名無しさん
NGNGhttp://www.gimlay.org/~javafaq/javafaq.html
http://www.google.com/
0241デフォルトの名無しさん
NGNG0242239
NGNG024366
NGNG>>実行されるから、resultがtrueになるかと思うけど、その前にcatchの中で
>>すでにresultは評価されてしまっているっちゅーことみたいね。
>最後の行のreturnが実行されないから当然じゃないの?
確かに66では、「当然のこと」を言っているんですけど、何か?
0244223
NGNG0245デフォルトの名無しさん
NGNGpath と classpath のちがいもわかんないのか?
0246241
NGNG239はclasspathの事が言いたいのでは無かろうかとおもって書いただけだが。
0247デフォルトの名無しさん
NGNG0248213
NGNG>ファイルを開いて1文字ずつ読み込んで
>整数だけ抜き出すプログラムを書け
それがわかんないんだけど。
どーやって整数って判断するの?どーやってそれをintに変換するの?
0249デフォルトの名無しさん
NGNG\\/ (・∀・)< >>248 芯でもいいよ!
( 。 /U U \_____________
U⌒U
0250だめ板住人
NGNGvoid 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その、わからない事柄を、最初の質問で書かんか。
>どーやって整数って判断するの?
Character.isDigit
>どーやってそれをintに変換するの?
Character.digit または Integer.parseInt
0252デフォルトの名無しさん
NGNG疑問の1も2も、同じ理由だと思うよ。つまり、スーパークラスのインターフェイスを
サブクラスで変更してはダメということ。アクセス特権が弱くなるということは例え
ば、スーパークラスAでpublicだったメソッドmが、サブクラスBでprotectedになる
場合、それらを使用するクラスでは、
A a = new B();
a.m();
ができないということになる。これは、Aクラスのインターフェイスが勝手に変更され
るということで、ポリモーフィズムが成り立たない。漏れはそう理解しているけどね。
それまでスーパークラスとして可能だった
0253252
NGNG0254デフォルトの名無しさん
NGNG会社の別のマシンで、jdk1.3.1でコンパイルしたら、
cannot resolve symbol
が大量に発生してコンパイルできなくて、まいってるんだけど、
誰か情報もってない?
あぁ〜こまった。
0255236
NGNGpublic static long getValue()
Get the timer value, in nanoseconds. The initial value of the timer is OS dependent.
public static long getResolution()
Get the nanosecond resolution of the timer
メソッドこれだけ。
精度が取得できるんだね。
でもcom.sunパッケージ・・・うーん
J2SE 1.5までのつなぎかな
JMFのタイマーはサウンドカード上の機能を利用する、
というような話を読んだ気がするけど誰か知らん?
0256229
NGNG>>231
>void Func(String* Hoge)
>{
>Hoge = new String("Hoge value");
>}
>呼び出し元のは、変わらんでしょう。
ちゃうちゃう!こんなイメージ
void HogeFunc(CString* Hoge)
{
*Hoge = "Hoge value";
}
仕事ではもっと別の文字列型クラス(会社独自)使ってたので、CString 使うのは初めてだが、
とりあえず動作確認した。やっぱ "=" 演算子で文字列代入になったよ。
(ところでMFCってちょっと動作確認しようと新規プロジェクトから動かそうとすると手間かかるんだな)
変数名の打ち間違いとかがやたらとあるんじゃない?
0258デフォルトの名無しさん
NGNGぜんぜんわかんないYO
0259デフォルトの名無しさん
NGNG0260デフォルトの名無しさん
NGNGこれってコマンドプロンプトからの子プロセスの話なのでは?
(Winアプリの場合どうなるのか実はよく知らん)
0261256 キリガヨイ!
NGNGは、よく読みなおしたらJAVAの動作をC++にコンバートして貰えてたのですか?
ご親切にありがとうございました!
私がやろうとしてることをC++で記述して貰ったのかと勘違いしました。
大変失礼!
0262254
NGNG自宅で、動いているのを、そのまま持っていったから、
それは無いと思う
0264デフォルトの名無しさん
NGNGコントロールパネル> (パフォーマンスとメンテナンス>) システム > 詳細設定 > 環境変数
0265デフォルトの名無しさん
NGNGこれ何?
0266デフォルトの名無しさん
NGNG0267デフォルトの名無しさん
NGNG0268デフォルトの名無しさん
NGNGIO erro (アイオー エロ?)・・・つまらない、スマソ。
何やってこのメッセージ出たの?何かがEUC_JPはサポート外って事。
0269デフォルトの名無しさん
NGNG0271amo
NGNG注意;↓の方法
π=4− 4/3 + 4/5 + 4/7 +・・・・4/9999
和の方法がわかりません。わかる方をしえてください。
0272デフォルトの名無しさん
NGNGpi = 4 - 4.0/3.0 + 4.0/5.0 - 4.0/7.0 +
って書いてみるのはどうだろう。
0273amo
NGNG注意;↓の方法
π=4− 4/3 + 4/5 + 4/7 +・・・・4/9999
和の方法がわかりません。わかる方をしえてください
0274amo
NGNGそのつもりでお願いします。
0275amo
NGNG0276デフォルトの名無しさん
NGNG消えろ。ゴミクズ。
0277デフォルトの名無しさん
NGNGいや、お前だと思うが。(w
0278amo
NGNG0279デフォルトの名無しさん
NGNG去ね>>amo
0280デフォルトの名無しさん
NGNGprivate String calcpaipai()
{
String a = "4";
int b=3;
int c=-1;
while(b<10000)
{
a+= " " + ((c>0)?"+":"-") + " 4.0/" + String.valueOf(b) + ".0";
b+=2;
c*=-1;
}
return a;
}
どうだ?正解のコードだろ
0281amo
NGNG0282aho
NGNG0284デフォルトの名無しさん
NGNG0285デフォルトの名無しさん
NGNG0286デフォルトの名無しさん
NGNG0287デフォルトの名無しさん
NGNG0288amo
NGNG0289テスト
NGNG0290デフォルトの名無しさん
NGNG無限力。
0291amo
NGNG注意;↓の方法
π=4− 4/3 + 4/5 + 4/7 +・・・・4/9999
和の方法がわかりません。わかる方をしえてください
0292デフォルトの名無しさん
NGNG0293Kusakabe Youichi
NGNG> きずいてるよ。あんまり人をなめないほうがいいよ・・・(けけけっけえ
ず
0294デフォルトの名無しさん
NGNG実行してちゃんと答えが出るのを確認済み
public class calcpaipai{
public static void main( String[] args ){
java.io.PrintStream ps = System.out;
int b=3;
int c=-1;
ps.println("public class PI{\npublic static void main(String[]a){");
ps.println("double pi = 4.0;");
while(b<10000)
{
ps.print( "pi=pi" );
for( int i=0;i<10;i++){
ps.print( ((c>0)?"+":"-") + "4.0/" + String.valueOf(b) + ".0" );
b+=2;
c*=-1;
}
ps.println(";");
}
ps.println("System.out.println(pi);");
ps.println("}\n}");
}
}
0295デフォルトの名無しさん
NGNG0296いう0じょ@
NGNGVBのsendKeyみたいな
メソッドありますか?
あったら教えてください。
0297デフォルトの名無しさん
NGNGIteratorパターンですが、ループはConcreteAggregateクラスの実装に
依存しないとかかれてますが、Iteratorをかまさなくてforでまわしても
依存しないですよね。。
for(int i=0; i<books.getLength(); i++){
Book book = books.getBookAt(i);
System.out.println(book.getName());
}
あさはか?
0298javaむぎ茶
NGNGまたはツリーになったデータをなめたいときは?
さらに幅優先、深さ優先で探索を切り替えたいときは?
0299279
NGNG・同じスキャン操作ならひとつのIteratorで複数のConcreteAggregateの
実装を吸収できる
ということですか?
一個のConcreteクラスだとあんまりメリット感がないって感じなのかな。
0300デフォルトの名無しさん
NGNGそのbooksが何のクラスを示すか分からんが、booksの型に依存するでしょう。
だからbooksのクラスを変更してしまったら、そのコードは使えなくなる。
しかし、配列を扱うクラスが皆iteratorを返してくれるのであれば、
iteratorに対して設計する事により、そのiteratorが元々何のクラスから生成されたかに
関係無く、コードを再利用する事が出来る。
0301デフォルトの名無しさん
NGNGインデックスアクセスできないデータ構造だと、
不可能とはいわないまでも効率が悪いです。
Java にも Iterator インタフェイスがあります。
こいつは、Vector でも LinkedList でも HashSet でも TreeSet でも
どんなコレクションクラスからも生成できて、
実際にそれがどんな実装かに関わらず、
すべての要素を列挙できます。
参考になれば。
0302301
NGNG> 不可能とはいわないまでも効率が悪いです。
この2行はミス。読み飛ばして。お願い。
0303279
NGNG>>300
ええとですね、Iteratorのスキャン操作を行う#hasNext()にしても#next()にしても
結局ConcreteAggregateの#getLength()と#getBookAt()を呼び出してるのをみて
じゃあforでまわしたっておなじじゃん。。って思ったんですが。
配列をVectorに変更しても、#getLength()と#getBookAt()の実装は変更せざる
を得ないわけですし。。
0304エッチマン
NGNGえっと質問です。
IteratorとかEnumなんとかで列挙して取り出せるようにしたとき、
マルチスレッドな環境とかで
その取り出し元に変化があった場合はどういう挙動になるですか?
0305デフォルトの名無しさん
NGNGTreeSet や LinkedList だと、getLength や getAt などの
インデックスアクセス操作は非常に効率が悪くて、
そういうやり方は良くないです。原理的に不可能とは言わないけど。
>>304
Java の Iterator だと、例外が飛びます。
0306デフォルトの名無しさん
NGNGiteratorを使う側からすれば、iteratorの実装がどうなっていようが(゚ε゚)キニシナイ!!でしょ?
iteratorのインターフェースさえ実装されてるならね。そこが重要。
>>297のコードだと、booksの型を知らなければ使えない。
でもiteratorを使えば、booksのクラスを知る必要は無い。
そんなクラスが地上に存在する事すら知らなくてもOKな訳だよ。
難しいかな?
0307エッチマン
NGNGところで標準のAPIにスタックはあってもキューは無いですよね。
Queueクラスは自分で作れってことですか?
(難しいもんじゃないから作ったけど)
これって変ですよね。ついでにセマフォもミューテックスもないし
自分で考え自分で生きろって感じで加持さんモードっぽいし
確かに作れるけど用意してくれてたっていいと思いません?
0308279
NGNG目からウロコ!
ちゃんとIteratorを実装しておけば、hasNext()とnext()だけで
生きていけるってことですね?
ああ、そうかあ。ありがとうございます。やっと次のパターンに行けそうです。
0309デフォルトの名無しさん
NGNGそれを言い出すとキリがない。
世の中にあるアルゴリズムなりデータ構造なりを全部作れってのは無茶です。
いや、全部じゃないとキミは言いたいのかもしれないけど、
僕はコレが欲しい、
私はあれが欲しい、
俺の使いたいのがなぜないんだ、
とか言い出すとキリがない。
どっかできっぱりさっぱり諦めるしかないんだよ。
Java には既に要らんクラスがいっぱいあるけど、
自分は要らんと思っても、他の誰かが要求したのかもしれないし。
0312デフォルトの名無しさん
NGNGint i = 1;
void hello() {
System.out.println("Hello A3");
}
}
class B3 extends A3 {
String i = "test"; /* 同じiを使用 */
}
class C3 extends B3 {
double i = 333; /* 同じiを使用 */
void hello() {
System.out.println("Hello C3");
}
}
class MethodOverriding3 {
public static void main(String args[]) {
B3 obj = new C3();
obj.hello(); /* C3のメソッド適用,objが参照するオブジェクトの型依存 */
System.out.println(obj.i); /* B3の変数適用,変数objの型依存 */
}
}
変数とメソッドで依存場所が違っててちょっと違和感があります.
なんでこんな実装に??
0313デフォルトの名無しさん
NGNGSDK標準のライブラリーってありませんか?
0314313
NGNG0315デフォルトの名無しさん
NGNG0316デフォルトの名無しさん
NGNGその方が便利だからです。
0317デフォルトの名無しさん
NGNGただ単に、フィールドはオーバーライドできないだけでしょう。
0318313
NGNGSDKじゃなくってJDKの間違いです。。。
どのクラスにprintfのようなオペレーション
があるのやら。。。
0319デフォルトの名無しさん
NGNGありません。
もう一度車輪を作ってください。
0320デフォルトの名無しさん
NGNGreinvent the wheelってやつ?
0321デフォルトの名無しさん
NGNGprintfど同じような目的に使えるものがあれば
いいわけであって、まったく同じである必要は
ありません。
そーいったもの用意されてませんかね<ALL
0322デフォルトの名無しさん
NGNGhttp://java.sun.com/products/jdk/1.2/ja/docs/ja/api/java/text/MessageFormat.html
0323デフォルトの名無しさん
NGNGCに戻りたいよお・・・。
0324デフォルトの名無しさん
NGNGサンクス!!
お礼にいい店つれってってあげます。
0325デフォルトの名無しさん
NGNGSystem.out.print("x= "+x+"y= "+y);
とか使ってなさい。
0326デフォルトの名無しさん
NGNGサブクラスを増やすことなく、かつ実行時に動作が
変化するようなアプリケーションを書いたことが無いだろ?
学生君
0327デフォルトの名無しさん
NGNG全部switch-case分岐とか?腐ってるね。
そんな古生代の遺物みたいなものを作る人
は逝って良しだなあ。
0328デフォルトの名無しさん
NGNG>全部switch-case分岐とか?腐ってるね。
ジャーちみは、こんなことしとんのか?ただのアホだぞ。。。はぁ
class Class0 {String methodA(){return null;}}
class Class1 extend Class0 {String methodA(){return "x= "+x+"y= "+y;}}
class Class2 extend Class0 {String methodA(){return "x== "+x+"y== "+y;}}
class Class3 extend Class0 {String methodA(){return "x equal "+x+"y equal "+y;}}
Class0 inst = new Class2();
0330デフォルトの名無しさん
NGNG■ このスレッドは過去ログ倉庫に格納されています