2007-05-02から1日間の記事一覧

ネーミング

Rubyの時は変数名やメソッド名は全て小文字で'_'で区切るというのが一般的だったようなんだけど、Javaでは単語の先頭を大文字にして'_'を使わないのが一般的のようだ。 この違いはどこから来るのかな。

ファイルの移動とpackage

おお。ファイルを別のパッケージに移動するとちゃんと参照なんかを修正してくれるんだ。packageはやっぱりフォルダと対応している。けど、java.lang.Stringとかどこにあるんだろう。そのまま考えたらどこかにjava,langというフォルダがあって、String.javaが…

インターフェースクラス

これはC++的な言い方をすれば「インターフェース定義専用の仮想クラス」ということでいいのかな。

mainとコンストラクタ

クラスの中にmainがあるのでまだ混同してしまう時があるのだけど、mainはコンストラクタではない。さらに言えばmainはそのクラスのメソッドですらないと考えたほうがいいのかも? object = new ClassA(); object.main(); というコードを書くことはあるのか?…

参照型のコピー

StringBufferクラスのインスタンスを作り、別のメソッドの中でapendで文字列をくっつければ、呼び出し元でも修正された文字列を見ることになる。 StringBuffer sb = new StringBuffer("0123"); add(sb); System.out.println("sb:"+sb);//01234567が表示され…

ヘッダファイル

「Eclipse」でJavaプログラミング超入門:Eclipseではじめるプログラミング(1) - @IT ここの説明にヘッダファイルが出てこないのは入門だからか? あるいはJavaにはヘッダファイルというものがない?

基本型と参照型

なるほど。型には基本型と参照型があって、配列やクラスは参照型なのでnewして実体を作らないないと使えない。C++の参照型と同じか? 確かC++の参照型の場合は、初期化しない変数だけの宣言はできなかったような気がする。 とにかく、見えないだけでやっぱり…

main

main関数はクラスの中にある。「クラスを実行」するとそのクラスのmain関数が呼ばれる。main関数を持たないクラスは別のクラスから呼ばれる受動的なクラス。という感じか。

new

宣言とか生成したときに何が作られているのかがまだ良く見えない。 int i こう書いたときはそのまま普通にiを変数として使える。 でもクラスの場合はちょっと違うようだ。Pointクラスを自作したとして、 Point o; //点oオブジェクト と書いただけではoは使え…

package

JavaのpackageはC++のnamespace見たいなのものなのかと思ったけどちょっと違うようだ。実際のファイルのありかを示すディレクトリ情報でもある。packageとディレクトリは完全に一対一対応なのかな?