Java勉強するから支援おね
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2007/12/15(土) 21:08:40C言語・・・2
Ruby・・・3
って感じ。オブジェクト指向の概念は分かっています。
Javaを早急に書けるようになりたい。
まずは質問
public static void main(String arg[]){
}
ってメインクラスに書かないといけないのはなぜ?
Cだったら、
int main(void)でよかったじゃん。
メソッドってある?
全部関数の形だったりする?
例えばRubyなら
3.4.floorとか-5.absとか出来るんだけど、
Javaだと
abs(-5)しか出来ない?
それと、publicもprivateも必ず書かなければならない?
0002デフォルトの名無しさん
2007/12/15(土) 21:10:360003デフォルトの名無しさん
2007/12/15(土) 21:18:19さようなら
0004デフォルトの名無しさん
2007/12/15(土) 21:19:44気が向いたらまた来いよ
0005デフォルトの名無しさん
2007/12/15(土) 21:29:53クラスの事勉強しはじめたら意味が分かるはず
とJava3ヶ月の学生が申しております
public ・・・有効範囲
static ・・・mainクラスが変化したら困るから
void ・・・・mainクラスの型
main ・・・・meinクラス
(String arg[])・引数
0006デフォルトの名無しさん
2007/12/15(土) 22:16:14ちょっとここに、
ニャーっとなくタマという名前のぬこをCat classを作って書いて
実際にタマを鳴かせてくれないか?
実のところ、C++をやろうかとも悩んでいる。
Rubyの速度では足りないプログラミングをやりたいからだ。
でも問題はC++は手続き言語の特徴が残ってしまっていて気持ち悪いということ・・・
0007デフォルトの名無しさん
2007/12/15(土) 22:24:24そういう奴に限って限界に挑戦していない
0008デフォルトの名無しさん
2007/12/15(土) 22:29:09どうすりゃいいんだ・・
0009デフォルトの名無しさん
2007/12/15(土) 22:30:51話はそれからだ。分かったな小僧
0010デフォルトの名無しさん
2007/12/16(日) 02:09:08コンパイラが吐いたアセンブリコードを見て、
ソースコードをチューニングというレベルまで行きたいのならC++
JVMの実行時コンパイルオプションを調節したり、
プロファイラでボトルネックを探すというレベルで良いならJava
一言で言えば、どこまで自動化されるか(逆に言えば自分で行わないといけないか)が異なる。
自分に合った方を選んだらよいと思う。
0011デフォルトの名無しさん
2007/12/16(日) 11:32:01C++ の上級者用の本で Modern C++ Design というのがあるけど、あれの最初の方に多重継承でポリシーを記述するというのがあった。
で、多重継承は Java にはないけど、Java の学習で欠かせないクラスライブラリの把握において、一つのクラスが山のようにインタフェイスをインプリメントしているというのがあって、Java ではそれがとても自然だった。
Java で自作クラスで for each 構文を利用するには、どんなインタフェイスを実装しなければならないかとか最初から気にしなきゃいけないけど、C++ では仮想クラスライブラリなんてない。
だから Java と C++ では抽象クラスを意図して使う段階が違うと思うな。
0012デフォルトの名無しさん
2007/12/19(水) 00:55:42Javaはとろい
0013デフォルトの名無しさん
2007/12/19(水) 14:57:36どんなプロジェクト?
0014デフォルトの名無しさん
2007/12/19(水) 15:35:42ネタにマジレスするけど・・
Mainに関しては、CもJavaも同じ。
OSがmainエントリをコールするまでの動きが分かっているなら、Javaも基本は同じ。
>全部関数の形だったりする?
>例えばRubyなら
>3.4.floorとか-5.absとか出来るんだけど、
>Javaだと
>abs(-5)しか出来ない?
全部関数の形って発言からして、オブジェクト指向もRubyも良くわかってないんじゃないかと・・。
Rubyは全てがオブジェクトだから、3.4 も -5 もオブジェクト。
3.4はFloat(Double)クラス、-5はIntegerクラスのインスタンスって事になるから、
そのクラスが持っているメソッドfloorやabsが呼び出せる。
Javaの場合は速度を稼ぐためにわざとPrimitive型として定義しているので、
上記のようなことは不可能。
JDK5以上のAutoBoxingでも不可能。
と京大生なら説明するまでも無かったですよね(´・ω・`)
publicやprivateは記述しないとPackageDefaultになるわけだけど、
Object指向がわかっているというなら、当然適切な修飾子を選ぶべき。
てかRubyにもアクセス修飾子はあるだろうに(´・ω・`)
0015デフォルトの名無しさん
2007/12/20(木) 22:12:56マジレスする。
>>1よ、おまえはバカだ。そしてカスだ。
0016ちんこ ◆GbXlaaQNk.
2007/12/30(日) 17:25:19質問を書き込むからお前ら答えなさい。
0017ちんこ ◆GbXlaaQNk.
2007/12/30(日) 17:32:18とりあえずGUIを確保しておきたい。
0018ちんこ ◆GbXlaaQNk.
2007/12/30(日) 17:32:400019デフォルトの名無しさん
2007/12/30(日) 17:37:45極薄は駄目
安全性を確保したいなら普通ので良い
0020デフォルトの名無しさん
2007/12/30(日) 17:38:400021デフォルトの名無しさん
2007/12/30(日) 17:41:310022ちんこ ◆GbXlaaQNk.
2007/12/30(日) 17:42:23極薄はダメだな。
一度破れた事がある。
おれは
http://www.okamoto-condoms.com/condoms/dotdehot.html
が好きだ。
って違うだろ!!
>>20
awtっていうのもあるらしいが、swingのパッケージか?
gtkが使えるのだが、Javaにはないか?
0023デフォルトの名無しさん
2007/12/30(日) 17:46:43別に Java にできないことは無いんだから、好きな gtk を頑張って使えば?
0024ちんこ ◆GbXlaaQNk.
2007/12/30(日) 17:53:530025デフォルトの名無しさん
2007/12/30(日) 18:02:12よくJavaは速さが遅いとかぬかす奴がいるがそれだったら一度Cとかにソースコードを変換してコンパイルすればいい話だし
しかもJavaコンパイラの出現も噂されてるからね
0026ちんこ ◆GbXlaaQNk.
2007/12/30(日) 18:06:56Stringへのキャストは
(String)でいいか?
あと、優先順位は、
String>int, double?
例えば
"x="+x
としたらこれは全体でString型を返す?
0027デフォルトの名無しさん
2007/12/30(日) 18:30:21ああ。すまんこう。
そのハンドルとGUIからSKINを連想した
0028ちんこ ◆GbXlaaQNk.
2007/12/30(日) 18:36:000029デフォルトの名無しさん
2007/12/30(日) 18:36:30gtk の方が使い易いのでは?
0030デフォルトの名無しさん
2007/12/30(日) 18:38:04プログラミングの勉強は、仕様書の精読と、実際の環境でのテストプログラムの作成に限るよな。
0031ちんこ ◆GbXlaaQNk.
2007/12/30(日) 18:56:32そんな時間はないのだよ。
Junitっていい?
とりあえず入れてみた。
環境はUbuntuLinux
今、
ttp://www5c.biglobe.ne.jp/~ecb/java/java00.html
で勉強してる。
JavaはRubyに似てるからわかりやすい。
素人じゃないからsmoothではある。
0032ちんこ ◆GbXlaaQNk.
2007/12/30(日) 19:01:36rubyからgtkは使った事はあるが、
他の言語からは使ったことがない。
javaからgtkを使うライブラリはあるか?
調べる気も起きない。調べてくれたまえ
あと一般的に
学校の先生とかはどのGUIライブラリを使ってる?
当方電気系だが。
0033デフォルトの名無しさん
2007/12/30(日) 19:17:48ひょっとして調べたものを読む時間も無さそうだな。
一般的には学校の先生はアプレットだな。
君が電気系かどうかは一般的な話とは無関係だな。
0034ちんこ ◆GbXlaaQNk.
2007/12/30(日) 19:33:01デスクトップ上でも使えるのか?
0035ちんこ ◆GbXlaaQNk.
2007/12/30(日) 21:02:54メンバ変数は0に初期化されるって本当ですか?
0036デフォルトの名無しさん
2007/12/30(日) 21:29:49嘘かもねぇ。
0037ちんこ ◆GbXlaaQNk.
2007/12/30(日) 21:32:49理屈的にはおかしいと思うんですけど
Javaはそういう仕様ですか?
0038デフォルトの名無しさん
2007/12/30(日) 21:53:48実行すれば分かるんじゃね?
0039ちんこ ◆GbXlaaQNk.
2007/12/30(日) 22:02:44Junitってどうやって使うの?
0040デフォルトの名無しさん
2007/12/30(日) 22:39:380041ちんこ ◆GbXlaaQNk.
2007/12/30(日) 22:46:55書いてあったプログラムをそのままjavacしたら3つもエラーが出た。
誰かこのエラーを解説してくれ。
http://www.uploda.org/uporg1181021.java.html
うp
revline.java:35: クラス StringStack は public であり、ファイル StringStack.java で宣言しなければなりません。
public class StringStack{
ファイルをわけろってどういうことだ・・?
publicとか理解不能だし、
ttp://www5c.biglobe.ne.jp/~ecb/java/java00.html
ここの、メソッドの引数ってとこが全く分からない。
0042デフォルトの名無しさん
2007/12/30(日) 22:53:34だから一つのファイルに二つ以上 public class は存在できない。
パッケージの意味が分かるまでは class に public を付けなくてもいいかもしれない。
(メソッドへの public はまた別の意味)
0043ちんこ ◆GbXlaaQNk.
2007/12/30(日) 23:00:08ってどういう意味?
String[int];
っていう書き方もある。
あと
byte b[] = new byte[1024];
0045デフォルトの名無しさん
2007/12/30(日) 23:17:38SUN の Java のドキュメントをもらってきて、 API の java.lang.String のコンストラクタの
説明を見れば瞬時に分かる
> String[int];
角カッコは配列を意味する。
int じゃなくて、 int 型の変数だよね?そのサイズだけ確保した String の配列
> byte b[] = new byte[1024];
C と互換性のある書き方を使っているけど Java 風なのは次の書き方。
byte[] b = new byte[1024];
配列は参照型で、変数宣言だけでは参照の変数が作られるだけ。
実際の配列を作る際は new を使って配列をメモリ上に作成し、配列型変数に参照を格納する。
0046ちんこ ◆GbXlaaQNk.
2007/12/31(月) 00:03:10になってるのか。
参照の変数っていうのはポインタのことか?
def method(String array){
0047ちんこ ◆GbXlaaQNk.
2007/12/31(月) 00:06:26}
っていうのは、
引数に入れたarrayと、中のarrayは
同じところを指している(参照)しているポインタだから、
arrayは"tinko"になってしまうということか?
参照というのがいまいち分からん。
プリミティブ型と、
そうでない型で違うというのはどうして?
0048ちんこ ◆GbXlaaQNk.
2007/12/31(月) 00:18:33String str;
ってしたらstrはStringクラスになるよね。
だって
MyClass a;
ってしたらaはMyClassになるでしょ。
型にプリミティブとそうでないものしかないのであれば、
String str;
でちゃんとメモリも確保されて、
String str;
str = "tinko";
でもいいんじゃないの?
newを使う理由はどこに?
0049ちんこ ◆GbXlaaQNk.
2007/12/31(月) 00:28:29でも、図書館が開いてないんです。
国立の図書館って、公務員ですからね、正月はがっつり休みやがる。
試験も近いのに迷惑ですよ。
学部の図書室にJavaのいい本があったと思うんですが、
それを借りにいけない。
だから教えてください、分からないことは山ほどあります。
不思議なことだらけなんです。
Javaにおけるクラスの絶対度は異常です。
0050デフォルトの名無しさん
2007/12/31(月) 00:44:46C++ だと変数宣言すると自動的にコンストラクタが呼ばれオブジェクトが生成されるため、
int x; とやったのと同じように宣言した変数を扱える。
でも、 Java はプリミティヴ型なら宣言しただけで使えるようになるけど、
配列やオブジェクトは変数宣言しただけでは単に参照可能な変数ができるだけで、
配列やオブジェクトができるわけじゃない。
だから、配列やオブジェクトを作るには、 new とか使わないといけない。
String s; とやっても s には文字列が入るわけじゃない。
文字列型のオブジェクトを参照可能になるだけ。
0051ちんこ ◆GbXlaaQNk.
2007/12/31(月) 00:55:40s = "aaaa";
とすれば
sには文字列が入るんじゃないの?
String str;
str = readLine();
という記述がある。new使ってない。
「参照可能な変数が出来る」というのはどういう状態を指すの?
0052デフォルトの名無しさん
2007/12/31(月) 01:28:28"aaaa" という記述をすると、メモリ上に String 型のオブジェクトができる。
そして s="aaaa" とするとそのオブジェクトの参照が s に入る。
readLine() は一行読んだ結果をメモリ上にオブジェクトとして作成し、その参照を返す関数。
だから、 str に参照が入る。
new を使わなくてもオブジェクトは作れる。ファクトリとかいうデザインパターンを調べるといいかも。
「変数はものを入れる箱」とかいう概念はプリミティヴ型にしか通用しない。
0053デフォルトの名無しさん
2007/12/31(月) 02:50:15なぜだ!?ちなみにJava5
DocumentBuilderFactory domFactory = DocumentBuilderFactory
.newInstance();
DocumentBuilder builder = domFactory.newDocumentBuilder();
Document doc = builder.parse(is);
ちなみに解析しているXMLはこれ
<?xml version="1.0" encoding="UTF-8" ?>
<ResultSet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:yahoo:jp:jlp"
xsi:schemaLocation="urn:yahoo:jp:jlp http://api.jlp.yahoo.co.jp/MAService/V1/parseResponse.xsd">
<ma_result>
<total_count>1</total_count>
<filtered_count>1</filtered_count>
<word_list>
<word>
<surface>TO</surface>
<reading>TO</reading>
<pos>名詞</pos>
</word>
</word_list>
</ma_result>
</ResultSet>
0054デフォルトの名無しさん
2007/12/31(月) 03:04:54うわー。随分情報小出しにするな。
いま、エスパーが君のマシンのプログラムを透視しているからもう少し待ちねぇ。
1年以内には解決しよう。
0055デフォルトの名無しさん
2007/12/31(月) 03:29:21エスパーがプログラムを完成させて動かしたら見事に XML 読めたよ。
おめでとう!
0056デフォルトの名無しさん
2007/12/31(月) 04:25:39ありがとうございます。
osxなんですが、もしかして関係あるんですかね?
必要なライブラリがあるとか?
0057デフォルトの名無しさん
2007/12/31(月) 04:44:310058ちんこ ◆GbXlaaQNk.
2007/12/31(月) 11:01:38リンク先website(オブジェクト)とアンカー(参照)の関係ですか?
何かもっと現実的な例で説明してもらえませんか?
一般的に分からない人に何か説明する時は相手の分かる次元まで落としてあげるものだと思います。
例えば、三次元の点と点の距離を求めるには二次元に落としてから考えるべきだし、
もっと分からなければ、図形的にヒモでも使って説明するでしょう。
Rubyよりやってきたので、参照、そういった概念が全くありません。
newというのは実際に何をしているのですか?
参照とnewはどう関係しているのですか?
全く見えません。
0059ちんこ ◆GbXlaaQNk.
2007/12/31(月) 11:08:260060デフォルトの名無しさん
2007/12/31(月) 11:26:080061ちんこ ◆GbXlaaQNk.
2007/12/31(月) 11:34:14インスタンスはメモリを持つ実態のことで、
参照はどっかにアドレスをもって、それを指しているということですか?
計算機工学なら分かります。
メモリとかアドレスとかの話にドロップダウンしてくれませんか?
0062ちんこ ◆GbXlaaQNk.
2007/12/31(月) 13:06:58理解出来ない・・・
0063デフォルトの名無しさん
2007/12/31(月) 13:53:05参照はポインタ型と同じだと思ってもいいよ。
ただ、ポインタとか言うといろいろ演算ができるけど、参照は代入と等号の比較以外の
演算ができないと思ってもらえれば。
つまり、 Java のオブジェクト型や配列型の変数宣言は、単にアドレスを入れる変数が作られるだけ。
次のプログラムがどう動くか予想してみて
int[] a,b;
a=new int[3];
b=a;
a[1]=1;
b[2]=2;
for(int i : a){System.out.println(i);}
for(int i : b){System.out.println(i);}
0064デフォルトの名無しさん
2007/12/31(月) 14:10:140065デフォルトの名無しさん
2007/12/31(月) 14:54:19a=[0,0,0]
b=a
a[1]=1
b[2]=2
a.each do |i|
puts i
end
b.each do |i|
puts i
end
Ruby も配列を作る時、変数毎に配列の箱が用意されているんじゃなくて、
a も b も参照であることが分かると思う。
0066デフォルトの名無しさん
2007/12/31(月) 15:23:01次の Ruby のプログラムの振る舞いを考えればいいはず。(Ruby 暦 30分)
class Test
def set num
@val=num
end
def get
@val
end
end
a = Test.new
b = a
c = a.clone
a.set 1
b.set 2
c.set 3
puts a.get
puts b.get
puts c.get
0067デフォルトの名無しさん
2007/12/31(月) 15:35:05class Test implements Cloneable{
int val;
public void set(int num){val=num;}
public int get(){return val;}
public Test clone() throws CloneNotSupportedException{
return (Test)super.clone();
}
}
class TestPrg {
public static void main(String[] arg) throws CloneNotSupportedException {
Test a = new Test();
Test b = a;
Test c = a.clone();
a.set(1);
b.set(2);
c.set(3);
System.out.println(a.get());
System.out.println(b.get());
System.out.println(c.get());
}
}
0068ちんこ ◆GbXlaaQNk.
2007/12/31(月) 15:56:09int[] a;
String str;
などという宣言は、
「int配列型、String型のインスタンスへのアドレスを持つ、「予定である」
参照箱を作った」ということで、
実際に
a = new int[100];
str = new String("aaa") or 単に"aaa";
とすることは、
String型の"aaa"を作りました。
そして便利なのでString型のインスタンスへのアドレスを欲しがっている
strくんにここのアドレスを渡しておこうと思います。
ということか?
b=aとすると、Rubyの場合、値がコピーされるが、
そういう風に解釈してよろしいか?
つまり、
b = aという演算は、
bくんもint[]型のインスタンスが欲しいそうです。
では、aくん、あなたが参照しているインスタンスをコピーして、
bくんに参照させてあげなさい。
分かりました。ほら、b、ありがたく受け取れ。
ありがたき幸せ・・・
という話か?
0069ちんこ ◆GbXlaaQNk.
2007/12/31(月) 16:04:52b=a;
という代入演算には、
コピーコンストラクタの概念が必要になると思うのだが・・・
b=a;
という演算は一体、何をしているのでしょうか?
bをいじってもaの参照しているインスタンスが影響を受けないようにしたいですね。
これはC++において、
アドレスで渡さずconst&で渡す参照渡しと同様の概念だと思うのですが、
違いますか?
(後述の理由より違うってことでおk?)
>>66をやってみたら、
(putsはpにしましたが、あとset(num)と明示的に
かっこをつけることが推奨されていますし、
setした時に@valが作り出される格好になっているので
最初から持たせるか、initializeしてくれないと分かりづらい・・・
最初動かないかと思ってた)
akira@akira-desktop:~$ ruby a.rb
2
2
3
となった。これは知らなかった。
代入だと元のまで変化してしまうのか?
そういえば代入は文字代入かinitializeでの代入くらいしかした覚えがない。
b=aみたいな書き方ってふつうしないと思うし。
0070ちんこ ◆GbXlaaQNk.
2007/12/31(月) 16:12:48b=a;
という演算は、
ポインタのコピーと解釈しておkですか?
そして、
メソッドなどの引数にとるときは
例えば
method(String str)
であれば、
String s = "aaa";
method(s);
とすると、
sの参照先のアドレスが参照型で渡されて、つまり、Cでいえば、
(*p)<=だぶんこれを参照型というのだと解釈した
の形で渡されて、
だから
(*p).nantoka
の形で使えるということですか?
つまり、まとめていうと、
str = sという演算が行われてから、
strについて処理をするので、sの値が変わるということでおk?
ではどうしてprimitiveな場合は値渡しになるのでしょうか?
0071ちんこ ◆GbXlaaQNk.
2007/12/31(月) 17:07:49もう何も分からない・・・
0072デフォルトの名無しさん
2007/12/31(月) 17:10:58C++ だと自然な結果になる。でも暗黙の機能が裏でたっぷり呼ばれる。
#include <iostream>
class Test {
int val;
public:
/*
Test(){std::cout <<"コンストラクタが呼ばれた" << std::endl;}
Test(const Test& x){std::cout << "コピーコンストラクタが呼ばれた" << std::endl;}
~Test(){std::cout << "デストラクタが呼ばれた" << std::endl;}
Test& operator=(const Test& obj){ std::cout << "代入演算子が呼ばれた" << std::endl;}
*/
void set(int num){val=num;}
int get(){return val;}
};
int main(){
Test a,b;
Test c=a;
b=a;
a.set(1); b.set(2); c.set(3);
std::cout << a.get() << b.get() << c.get() << std::endl;
}
0073デフォルトの名無しさん
2007/12/31(月) 17:15:31この場合、暗黙のうちになにかが起きるってことが無い。
C++ の -> と Java や Ruby の . が近いって感覚かな?
#include <iostream>
class Test {
int val;
public:
/*
Test(){std::cout <<"コンストラクタが呼ばれた" << std::endl;}
Test(const Test& x){std::cout << "コピーコンストラクタが呼ばれた" << std::endl;}
~Test(){std::cout << "デストラクタが呼ばれた" << std::endl;}
Test& operator=(const Test& obj){ std::cout << "代入演算子が呼ばれた" << std::endl;}
*/
void set(int num){val=num;}
int get(){return val;}
};
int main(){
Test *a,*b,*c;
a=new Test();
b=a;
c=new Test(*a);
a->set(1); b->set(2); c->set(3);
std::cout << a->get() << b->get() << c->get() << std::endl;
}
0074デフォルトの名無しさん
2007/12/31(月) 17:20:52代入文では値をコピーしたというのに意識して合わせたという風に納得すべきだろう。
だから Java ではプリミティヴ型に対するプログラミングとオブジェクト型に対するプログラミングは
かなり違う。
で、 Java 1.4 までは、意識してラッパークラス(int なら java.lang.Integer など)を活用しなければならなかった。
0075ちんこ ◆GbXlaaQNk.
2007/12/31(月) 17:56:06結局、
method(String s)の場合は
String str = "aaa"; method(str);
とした場合は、
s = str(参照ポインタのコピー)
が最初にされるからstrの値は変わってしまう。
method(double d)の場合は。
double value = 1.1;
method(value)
としてもvalueの値自体のコピーがdに渡されるから
元のvalueは変化しないってこと?
呼び方としてはC的にいうと、
char *pという宣言について、
p ポインタ
*p 参照ポインタ
ということかな?
「参照」という言葉について、何を参照しているのか、
なぜ参照と呼ばれるのかを詳しく話してもらえないと、
理解があやふや。
参照渡しとポインタ渡しの違いは?
C++のmethod(type& ob)と、Javaのmethod(type ob)は等価なのか?
Javaの引数の渡し方は
ttp://www.aerith.net/design/argument-j.html
これらの図のうちどれか?
0076デフォルトの名無しさん
2007/12/31(月) 18:08:40但し、ポインタは厳密にアドレスに対応づけられるけど、
参照は物理的な対応は無くても良くて抽象的な概念。
オブジェクトを指すことができれば良い。
C++ の参照と Java の参照は同じ概念。
但し、 C++ の参照型変数は初期化が義務づけられているけど、
Java の変数は初期化しないと後で使おうとすると NullPointerException が出る。
指定されている図は「コピー」の説明であって、参照の説明ではないな。
Java はプリミティヴ型は値渡し、オブジェクト型は参照渡しになる。
C++ では参照渡しとポインタ渡しは全然違うけど、 Java ではポインタ渡しが無いから何とも言えない。
0077ちんこ ◆GbXlaaQNk.
2007/12/31(月) 18:21:10=>オブジェクト指向をするに当たって、オブジェクトをそのまま変化させる方法があればよいな。
=>じゃあポインタコピろうぜ。
=>でもポインタでコピるとアロー演算子が汚いな。
=>じゃあ参照渡しを定義しようぜ。
=>いいねそれ!
っていうこと?
ttp://www.geocities.jp/ky_webid/cpp/language/015.html
ここの参照渡しのところのポインタ渡しと参照渡しの比較的に考えると。
でもポインタでも
char *p;
っていうと、これはどこも指してないけど、ポインタが作られてるよね。
この時に、ポインタのメモリはどっかに確保される。
String str;
は参照変数を定義しているのだと思うけど、
抽象的な概念であれば、この時はまだメモリが確保されないの?
ポインタ渡しと参照渡しの差が上記したことのみだとすると、
「抽象的な概念」というのがどこを指しているのか分からない。
0078デフォルトの名無しさん
2007/12/31(月) 18:36:32http://up2.viploader.net/upphp/src/vlphp114973.jpg
007956
2007/12/31(月) 18:37:55そうですか。わざわざすいません。
そうすると、やはり何がいけないのかがよけい分からなくなりました。
ちなみにInputStreamをFileInputStreamにして、ローカルから読もうとしても
同じでした。
謎。。。
0080デフォルトの名無しさん
2007/12/31(月) 18:43:37シンプルすぎワロタw
0081デフォルトの名無しさん
2007/12/31(月) 18:45:33str=null;
なんてのもできるよ。
参照を入れる箱はできるよ。
ただ、本当に参照と呼ばれるものに何が入っているかは
ポインタと違って良く分からないだけで。
C++ はメモリとかアドレスとかにきちんと対応づけられているけど、
Java の内部が実際どうなっているか、ソースファイルを読んでないのでよくわからない。
0082デフォルトの名無しさん
2007/12/31(月) 18:47:35おお。いよいよ小出しも佳境に入ってきたね。
InputStream を使ったのか。だったら、 is じゃなくて System.in とすれば標準入力から
読めるんじゃないかな?
あとは、 FileInputStream の代わりに File にするとか。
0083ちんこ ◆GbXlaaQNk.
2007/12/31(月) 18:49:44ただ「参照している」というだけで、
それが何をしているのかは謎のblackboxなの?
0084デフォルトの名無しさん
2007/12/31(月) 18:58:36そうそう。
気持ち悪かったらコンパイラのソースを読むと。
0085ちんこ ◆GbXlaaQNk.
2007/12/31(月) 19:27:36public class ClassName
にすると、なんでファイル名もClassName.java
にしなきゃいけなくてかつ
publicなクラスはファイル中に1つしかあっちゃいけないの?
0086デフォルトの名無しさん
2007/12/31(月) 19:54:39http://q.hatena.ne.jp/1122966784
0087ちんこ ◆GbXlaaQNk.
2007/12/31(月) 20:07:51これマジで?
ファイルが違うと何か変わるの?
0088デフォルトの名無しさん
2007/12/31(月) 20:30:430089デフォルトの名無しさん
2007/12/31(月) 20:42:31October 11 [Thu], 2007, 22:16
この書き込みを最後に明日実験が終わって帰ってくるまで
書き込みを禁止することでトップに残るようにしておきます。
チアの責任者から前主将の方に連絡が入ったとの事で、
驚いています。と、ともに深く反省しております。
ぼくとしてはあくまでもチアの部員との個人的な問題で
解決出来るかなと思い先ほどのような軽めの謝罪文を出しましたが、
部と部での問題になりつつあるとの指摘を受けて改めて謝罪いたします。
このブログはあくまでも自分のオフザケを表現する場として解説して、
その方向でいろいろな、あくまでもネタとしての持論を展開してきました。
なので、気づかぬうちに自分では「なんでもあり」のような気持ちに
なっていたのかも知れません。
その結果、チアの女子部員を「肉便器」「イロモノ」よばわりするところまで
エスカレートしてしまいました。今はとても反省しています。
これからどうやって関係を修復していけばよいやらぼくには分かりません。
まずは該当の記事を見つけられる限り削除しますので、
もしいたらぬ点があれば
[email protected]
の方に連絡いただければ削除または修正を検討します。
その上で、もしよろしければ後日チアの責任者もしくはリーダーと会って
謝罪したいと思っています。
それについては前主将から連絡がいくかと思われます。
本当に申し訳ありませんでした。
京都大学バーベル部主将 早川輝
0090ちんこ ◆GbXlaaQNk.
2008/01/01(火) 00:20:46強化学習のプログラムを書く。
他の課題も満載なので、明日か明後日には着手したい。
Junitの使い方も勉強しないと。
でもなんとなく分かる。Test用のクラスを書くんだよな。お決まりだ。
今Java FAQなるページを読んでいる。
奥が深すぎる。でも今必要な駒は揃い始めてきた。
あとはGUIだな。
0091ちんこ ◆GbXlaaQNk.
2008/01/01(火) 01:28:00なんか別にpublicとprivate以外いらないんじゃないかって思う。
質問だけど、
publicのメンバを継承した場合、
サブクラスではそのメンバのアクセス指定子は何になるの?
privateはそのクラス内でしか参照出来ないと書いてあるけど、
それは継承されないということ?
009256
2008/01/01(火) 06:14:05すいません。解決できました。document nullでも
実は中身を読めていたという落ちでした。
toStringしたときになにがnullなのか分からない。
ご迷惑おかけしました。
0093デフォルトの名無しさん
2008/01/01(火) 16:50:520094ちんこ ◆GbXlaaQNk.
2008/01/01(火) 17:05:580095ちんこ ◆GbXlaaQNk.
2008/01/01(火) 17:09:26それは子に継承出来るよね。
その時、子はその変数なりメンバをどういうアクセス指定子で持つの?
0096ちんこ ◆GbXlaaQNk.
2008/01/01(火) 17:21:32ぬるぽ
ガッ
の、ガッっていうのはcatchのこと?
0097デフォルトの名無しさん
2008/01/01(火) 21:22:00>>91 >>95
まあその辺は実験すれば 5 分で結論が出るからいいと思うけど。
実は Java には何も指定しない状態というのが特別な状態なんだな。
何も指定しないと「ファイル内でアクセス可能」という不思議な状態になる。
継承関係だけでアクセスしたかったら protected を使うべし。
0098ちんこ ◆GbXlaaQNk.
2008/01/01(火) 21:36:29どうすればいい?
0099ちんこ ◆GbXlaaQNk.
2008/01/01(火) 21:45:440100デフォルトの名無しさん
2008/01/01(火) 22:14:19Test(int[][] anArray) とかでできたよ。できないかと思って試しちまった。
0101ちんこ ◆GbXlaaQNk.
2008/01/01(火) 22:57:55いやそういう話じゃなくて
コンストラクタの中でどうやってコピーすればいいかっていう話。
cloneは使えないよね?
copyArrayなんていうメソッドがあったりするらしいけど、
一体どうすればいいのかな?
0102デフォルトの名無しさん
2008/01/01(火) 23:51:08http://java.sun.com/docs/books/jls/third_edition/html/arrays.html#10.7
上で clone をすると下の階層は share になるようだね。
new int[arg.length] とか初期化した後、
for-each loop で各要素を clone するんだろうね。
0103ちんこ ◆GbXlaaQNk.
2008/01/07(月) 20:33:39Rubyは速度がクソすぎて死ねる。
0104デフォルトの名無しさん
2008/01/07(月) 21:40:240105ちんこ ◆GbXlaaQNk.
2008/01/07(月) 21:46:11こういう理由でjdeを使えないらしい。
環境はEclipseがいい?
でも日本語にするのがめんどくさい。
IDEを使うと楽になるかな?
おれはemacsが好きなんだけど。
今JavaAppletしてる。
0106デフォルトの名無しさん
2008/01/26(土) 00:49:590107ちんこ ◆GbXlaaQNk.
2008/02/10(日) 18:53:42UbuntuでDebianのパッケージ使っても大丈夫かな?
0108デフォルトの名無しさん
2008/02/13(水) 12:27:54案ずるより生むがやすs
つーか、Ubuntuはdeb系だから大丈夫じゃね?と無責任こいてみる。
0109ちんこ ◆GbXlaaQNk.
2008/02/14(木) 01:49:52でも別にJDEEなんていらんけどね。
かなりJava書けるようになって今腕試しにオセロ作ってるよ^^
0110ちんこ ◆GbXlaaQNk.
2008/02/14(木) 23:03:24今Othello作ってるんだよね。
で、これがプログラムなんだけど、
今、MainPanelのputDownっていうメソッドでテスト的に
stata[0][0]
に白を置こうとしているんだけど、
mouceClickedがちゃんと動作してないのか、
ちゃんとrepaint()が発動してるような気がしない。
repaint()ってpaintComponentを自分で発動させるって意味だよね?
なんでこれちゃんと動かないんだろ。
0111ちんこ ◆GbXlaaQNk.
2008/02/14(木) 23:29:21addMouseListerしてないwwwww
0112ちんこ ◆GbXlaaQNk.
2008/02/26(火) 12:59:53JRubyやります。
Javaのプリミティブと参照の混在っぷりにイラっと来た。
Rubyならそれを解決してくれるし、
Javaも無駄にならない!(特にSwing)
JRubyは神
0113デフォルトの名無しさん
2008/04/30(水) 22:11:29その点では、少し値は張るが、これなんかお勧めだ
http://www.amazon.co.jp/Java%C3%A3%C2%81
%C2%A7%C3%A5%C2%AD%C2%A6%C3%A3%C2%81%C2
%B6%C3%A9%C2%81%C2%BA%C3%A4%C2%BC%C2%9D
%C3%A7%C2%9A%C2%84%C3%A3%C2%82%C2%A2%C3
%A3%C2%83%C2%AB%C3%A3%C2%82%C2%B4%C3%A3
%C2%83%C2%AA%C3%A3%C2%82%C2%BA%C3%A3%C2
%83%C2%A0-%C3%A6%C2%A3%C2%AE-%C3%A7
%C2%9B%C2%B4%C3%A6%C2%A8%C2%B9/dp/4320121988/
ref=sr_1_14?ie=UTF8&s=books&qid=1195823217&sr=8-14
0114デフォルトの名無しさん
2008/05/02(金) 17:46:36http://itpro.nikkeibp.co.jp/article/COLUMN/20060927/249181/
0115デフォルトの名無しさん
2008/07/22(火) 22:10:540116デフォルトの名無しさん
2009/02/20(金) 19:48:02∧∧
(´・ω)
_|⊃/(___
/ ヽ_(____/
 ̄ ̄ ̄ ̄ ̄ ̄ ̄
0117デフォルトの名無しさん
2009/02/20(金) 20:14:25なんと言うド無能
0118デフォルトの名無しさん
2009/02/23(月) 08:36:01!
∧∧
(・ω・ )
_| ⊃/(__
/ ヽ-(___/
 ̄ ̄ ̄ ̄ ̄ ̄
0119デフォルトの名無しさん
2009/02/23(月) 08:55:10(ω・`)
_|⊃/(___
/ ヽ_(____/
 ̄ ̄ ̄ ̄ ̄ ̄ ̄
0120デフォルトの名無しさん
2009/02/25(水) 08:33:46オハヨー!!
∧∧ ∩
(`・ω・)/
⊂ ノ
(つノ
(ノ
___/(___
/ (___/
 ̄ ̄ ̄ ̄ ̄ ̄
0121デフォルトの名無しさん
2009/03/23(月) 07:34:11(ω・`)
_|⊃/(___
/ ヽ_(____/
 ̄ ̄ ̄ ̄ ̄ ̄ ̄
0122デフォルトの名無しさん
2009/04/19(日) 21:51:540123デフォルトの名無しさん
2009/05/18(月) 08:32:13∧,,∧
( `・ω・) ウーム…ここは?
/ ∽ |
しー-J
0124デフォルトの名無しさん
2009/05/31(日) 12:44:26{:.゚:.:.:__`´__.:.:.:.:.:.:。.:|
!゚/:::::`´::::`ヽ.:.:。/
//:イ__,ハノ,__」::i:}.:ノ、 JAVAの本買った
\!ル゚ ̄_ ゚̄ト!:|_/ 今日から私もプログラマwww
|ハ、|__〉 |」ノ/
. (( ___>rュ<リノ__
`ー―‐l:.:Y:.:.:f――‐'
|:.:.0:.:.:ト、_\ ))
. ぶわー |:.:.:.:o.o| `)ノ
0125デフォルトの名無しさん
2009/05/31(日) 15:41:33{:.゚:.:.:__`´__.:.:.:.:.:.:。.:|
!゚/:::::`´::::`ヽ.:.:。/
//:イ__,ハノ,__」::i:}.:ノ、 計画表作った
\!ル゚ ̄_ ゚̄ト!:|_/ 100時間勉強してプロになるーww
|ハ、|__〉 |」ノ/
. (( ___>rュ<リノ__ AA使っている自分きもいーww
`ー―‐l:.:Y:.:.:f――‐'
|:.:.0:.:.:ト、_\ ))
. ぶわー |:.:.:.:o.o| `)ノ
0126デフォルトの名無しさん
2009/06/01(月) 13:42:41{:.゚:.:.:__`´__.:.:.:.:.:.:。.:|
!゚/:::::`´::::`ヽ.:.:。/
//:イ__,ハノ,__」::i:}.:ノ、 インターフェースの暗記秋田ーww
\!ル゚ ̄_ ゚̄ト!:|_/
|ハ、|__〉 |」ノ/
. (( ___>rュ<リノ__
`ー―‐l:.:Y:.:.:f――‐'
|:.:.0:.:.:ト、_\ ))
. ぶわー |:.:.:.:o.o| `)ノ
0127デフォルトの名無しさん
2009/06/01(月) 14:18:43{:.゚:.:.:__`´__.:.:.:.:.:.:。.:|
!゚/:::::`´::::`ヽ.:.:。/
//:イ__,ハノ,__」::i:}.:ノ、 Enumeration,Map型わけわからんーw
\!ル゚ ̄_ ゚̄ト!:|_/ String配列でいいじゃんーww
|ハ、|__〉 |」ノ/
. (( ___>rュ<リノ__
`ー―‐l:.:Y:.:.:f――‐'
|:.:.0:.:.:ト、_\ ))
. ぶわー |:.:.:.:o.o| `)ノ
0128デフォルトの名無しさん
2009/06/29(月) 02:51:52∧ ∧ 一人一個まで
( ´・ω・)
( ∪ ∪ ,.-、 ,.-、 ,.-、 ,.-、 ,.-、 ,.-、 ,.-、
と__)__) (,,■) (,,■) (,,■) (,,■) (,,■) (,,■) (,,■)
梅干 高菜 おかか こんぶ ごはんですよ わさび漬け 焼たらこ
,.-、 ,.-、 ,.-、 ,.-、 ,.-、 ,.-、 ,.-、
(,,■) (,,■) (,,■) (,,■) (,,■) (,,■) (,,■)
鶏飯 明太子 ちりめんじゃこ ゆかり 柴漬 塩辛 牛肉しぐれ
,.-、 ,.-、 ,.-、 ,.-、 ,.-、 ,.-、 ,.-、 ,.-、
(,,■) (,,■) (,,■) (,,■) (,,■) (,,■) (,,■) (,,■)
鮭 鶏ごぼう 野沢菜 天むす ツナマヨ エビマヨ 鮭マヨ 具なし
0129デフォルトの名無しさん
2009/07/03(金) 09:56:52MapがMap(Key, Value)こうなっているとすると、
Keyひとつに属性ひとつだけ持たせたいときはStringで充分かもしれんけど、複数持たせたいときもある。
そういうときにClassを作ってValueに入れたりする。
class Test {
String namae;
int kokugo;
int sansue;
int rika;
}
Test test = new Test();
map.put("なんたら", test);
これくらいならclass配列で良いと思うだろうけど、頻繁に追加したり削除したりしたいときは
配列は不便なのさ
0130デフォルトの名無しさん
2009/07/03(金) 20:42:16{:.゚:.:.:__`´__.:.:.:.:.:.:。.:|
!゚/:::::`´::::`ヽ.:.:。/
//:イ__,ハノ,__」::i:}.:ノ、 うおっ 具体例わかりやすいです
\!ル゚ ̄_ ゚̄ト!:|_/
|ハ、|__〉 |」ノ/ 喧嘩腰の荒しが多いJAVAスレでは珍しいです
. (( ___>rュ<リノ__
`ー―‐l:.:Y:.:.:f――‐'
|:.:.0:.:.:ト、_\ ))
. ぶわー |:.:.:.:o.o| `)ノ
0131デフォルトの名無しさん
2010/02/19(金) 01:19:47且且~
且且~
∧__∧ 且且~
(´・ω・) 且且~
`/ヽO=O且且~
/ ‖_‖且且~
し ̄◎ ̄◎ ̄◎
皆さん、お茶が入りましたよ…
0132デフォルトの名無しさん
2010/03/23(火) 09:09:010133デフォルトの名無しさん
2010/03/26(金) 19:14:440134デフォルトの名無しさん
2010/05/24(月) 20:09:150135デフォルトの名無しさん
2010/05/24(月) 23:07:450136デフォルトの名無しさん
2011/04/26(火) 23:08:59.96変数ansにOKを代入してaが60未満ならansにNOを代入して
ansの内容を表示するプログラムを作ってくれ
0137 忍法帖【Lv=2,xxxP】
2011/05/31(火) 11:40:24.08★★Java質問・相談スレッド144★★
★★ Java の宿題ここで答えます Part 69 ★★
★★Java質問・相談スレッド Part 145★★
★★Java質問・相談スレッド★★ Part 145
★★Javaの宿題ここで答えます★★ Part 70
0140デフォルトの名無しさん
2011/06/15(水) 00:37:12.270142デフォルトの名無しさん
2011/06/15(水) 10:21:49.24開発環境ディレクトリ構成を以下のようにしています。
data/画像
img/画像
jsp/jspファイル
WEB-INF/
work/
jspから画像を表示したいときはどうしても
../img/hoge00.jpg
../data/hoge01.jpg
と書かなくてはいけないのですが
../を省いて、img/hoge00.jpgと書くだけで表示できるようにすることはできでしょうか?
0143デフォルトの名無しさん
2011/06/19(日) 17:40:40.290145デフォルトの名無しさん
2011/09/20(火) 20:51:04.860146デフォルトの名無しさん
2011/12/09(金) 18:05:42.850147デフォルトの名無しさん
2011/12/14(水) 10:16:54.83akiradeveloperのやつ
0148デフォルトの名無しさん
2012/01/02(月) 19:31:11.020149デフォルトの名無しさん
2012/01/02(月) 19:50:32.18かなりはじめの方で呆れるかもしれんけど、よろしくですよ。
|handle|hand |tips
dealer |comp |5,16,22,31,33|150
player1 |Tom |2,13,26,13,48|50
上記のような表があってPlayer classとExecPlayer classを作って表示させる。
下記のように表示させたい。
comp, {5 16 22 31 33},150
Tom, {2 13 26 13 48},50
0150デフォルトの名無しさん
2012/01/02(月) 19:51:07.50public class Player {
String handle;
int hand;
int tips;
public Player(String h,int a,int t){
handle = h;
hand = a;
tips = t;
}
}
--------------------------------------------------------------
public class ExecPlayer {
public static void main(String[] args) {
Player p1 = new Player("comp",null, 150);
Player p2 = new Player("Tom", null, 50);
}
}
--------------------------------------------------------------
ExecPlayer classに{5,16,22,31,33}と{2,13,26,13,48}を入れたいのだが、入れるとエラーになってわけわからん。
どうか頼む、教えてくれ。
0151デフォルトの名無しさん
2012/01/02(月) 19:52:20.65>ExecPlayer classに{5,16,22,31,33}と{2,13,26,13,48}を入れたいのだが、入れるとエラーになってわけわからん。
ExecPlayer classのnullのところに・・・です。
0152デフォルトの名無しさん
2012/01/02(月) 23:09:35.08Playerクラス内で
int handle を int[] handle
int a をint[] a
0153デフォルトの名無しさん
2012/01/03(火) 09:48:42.62俺もそう思ってやってたんだが、そうするとExecPlayerクラスでエラーがでるんだ。
Player p1 = new Player("comp",{5,16,22,31,33}, 150);
Player p2 = new Player("Tom", {2,13,26,13,48}, 50);
オブジェクトが作れず先にすすめん(´;ω;`)
0154デフォルトの名無しさん
2012/01/03(火) 09:49:57.99コンストラクター Player(String, int, int, int, int, int, int) は未定義です
トークン "{" に構文エラーがあります。このトークンを削除してください
トークン "}" に構文エラーがあります。このトークンを削除してください
コンストラクター Player(String, int, int, int, int, int, int) は未定義です
トークン "{" に構文エラーがあります。このトークンを削除してください
トークン "}" に構文エラーがあります。このトークンを削除してください
at ex.ExecPlayer.main(ExecPlayer.java:8)
このようなエラーがでる。
0155デフォルトの名無しさん
2012/01/03(火) 10:35:28.56配列[]について調べながらやってみ
public class Player {
__String handle;
__int[] hand;
__int tips;
__public Player(String h,int[] a,int t){
__handle = h;
__hand = a;
__tips = t;
__}
}
0156デフォルトの名無しさん
2012/01/03(火) 19:36:05.42解決できた。サンクス。
0157156
2012/01/18(水) 16:20:09.03public class Dog{
private String name;
public Dog(String name){
this.name = name;
}
public String getName(){
return name;
}
public void friend(Dog other){
System.out.println(name + "の友達は" + other.name());
}
}
0158156
2012/01/18(水) 16:23:42.97public static void main(String[]args){
Dog john = new Dog("ジョン");
Dog tom = new Dog("トム");
}}
これはfriendメソッドの引数が参照になってるわけなんだが、まったくもって理解できない。
参照を引数に取るってどういうことなんだ?
0159156
2012/01/18(水) 16:24:15.200160デフォルトの名無しさん
2012/01/18(水) 16:52:59.670161156
2012/01/18(水) 19:27:11.04参照はDog otherで、このotherはどこのこと?
ここいらもろもろがまるっきり意味不明。
0162デフォルトの名無しさん
2012/01/18(水) 19:49:59.98friendってメソッドはDog型の引数が必要で、その引数はメソッドの中では仮にotherって呼ぶけど、otherはprintln 出力に使うよってこと
0163156
2012/01/18(水) 20:23:55.15やぱ理解には程遠い。
最後のjohn.friend(tom)で、friendメソッドでnameにjohnを代入、(tom)がother.nameに代入って感じでいいのかねな?
0164デフォルトの名無しさん
2012/01/18(水) 20:34:21.18この場合はjohnっていうインスタンスでfriendを呼んでるから、friendのなかのnameはjohnのフィールドに保持されてる値
それでother.nameは引数になったkenのnameフィールドをみてるってこと
0165156
2012/01/18(水) 20:51:15.85まだ苦労するが理解した。
あとは俺の脳処理しだいだなー。
激さんくす!!
0166停止しました。。。
NGNG■ このスレッドは過去ログ倉庫に格納されています