2010-01-01から1ヶ月間の記事一覧

第17回 変数宣言の型宣言は後ろに書くのか? 前に書くのか?

型宣言は前派 Javaは型を変数の前に書く。 C言語も前である。 型宣言は後派 UMLやSQLなどは型は後ろに書く。 型宣言についての小話 学術的な観点で書いた場合、 型宣言は後ろに書くのが一般的。 UMLなどもその流派。 昔の言語も型宣言は後ろだったらしい。 C…

第16回 JavaのN:M と リレーショナルDBのN:M 

リレーショナルDBでは、N:Mを表現することは無理。 だから間にテーブルを作り、1:N, 1:Mの構造を作る。 それに対してJavaではN:Mの構造を作ることが可能。 人間のそもそもの思考は実はこちらに近い。大学の授業で、講義と生徒がN:Mにあたるもの。 講義は複数…

第15回 Javaにおけるクラスという言葉

ソース上でインスタンスになる前の設計図としてして語られるクラス(型的な意味合い)。 オブジェクト指向的にソースとは関係なく、機能を集めたものという意味合いのクラス。 .javaファイルをコンパイルした.classというコンパイル済みソースという意味合い…

第14回 コンパイルする言語は、値をソースの外に出したい

ソースを書き換えるとコンパイルが必要。 だからなるべくソースの外にだして、コンパイルしなくてもソースの挙動を変えたい。 だから設定ファイルのオンパレード。 JNDIなどもこの思想に基づいて作られている。 自分で同じような処理をするものを作ってもい…

第13回 superの使いどころ

superを使う場面は限られている。 たとえば、親クラスのメソッドをオーバーライドしたときなどだ。 普段は、子クラスは親の機能を引き継いでいるので、thisもsuperも同じものをさすことになる。参考: Javaの道:クラス(12.superの利用)

第12回 Eclipseのビルドパスについて

Eclipseのビルドパス プロジェクトを選択して右クリックからプロパティ Sourceタブ、Projectsタブ、Librariesタブなどを管理できる。 Sourceタブ コンパイルする対象のファイルがあるフォルダを指定。 普通は srcフォルダ。 テストなどを別フォルダにわけて…

第11回 J2EEとJNDI

J2EEではDataSourceを扱うのにJNDIを使うことになっているらしい。 そしてTomcatなどのコンテナ自信がJNDIを提供しているので開発者はそれを使う(設定ファイルなどを書く)。

第10回 Java型とSQL型

Javaの型とSQLの型は別なのでマッピングが必要 個人的に重要そうなところだけをピックアップ Java SQL String VARCHAR/LONGVARCHAR long BIGINT int INTEGER double DOUBLE java.math.BigDecimal NUMERIC/DECIMAL java.sql.Date DATE java.sql.Time TIME jav…

第9回 無名クラスは無名関数のように外側の変数を参照できるか?

リードオンリーならば参照可能。 つまり、無名クラスから値の書き換えは不可。 finalはコンパイラが値を置換するので、参照とは言いがたい。 例: abstract class Hoge{ public abstract int execute(); } public class Main { public static void main(Stri…

第8回 アクセス修飾子

public class Main { public static void main(String args[]) { //--------------------------------------------------// // 他のクラスからの呼び出し例 //--------------------------------------------------// System.out.println("他のクラスからの呼…

第7回 コレクション

Listインタフェース 動的にサイズを変更できる配列。 Listインタフェースの実装 java.util.Vector スレッドセーフなので、コード内にsynchronizedブロックが多数存在。 複数のスレッドでVectorを安全に使用できるが、性能は低下。 java.util.ArrayList Vecto…

第6回 無名配列

new 型[]{ 値, 値, ... } で無名配列が作れる。 例: public class Main { public static void main(String args[]) { System.out.println( new int[]{4,5,6}.length ); } } 結果: 3

第5回 テンプレートメソッドパターン

テンプレートメソッドパターン 言語によってその実装方法はさまざまであるが、 子クラスで差分を実装する書き方なら、 public class Main { public static void main(String args[]) { Hoge h = new Hoge_Ex(); h.execute(); } } abstract class Hoge { publ…

第4回 Eclipseでsysoと打ったあとCtr + Space で System.out.println(); が補完される

Eclipseでsysoと打ったあとCtr + Space で System.out.println(); が補完される syso

第3回 System.out は java.io.PrintStream であることを確認する

System.out は java.io.PrintStream であることを確認する public class Main { public static void main(String args[]) { System.out.println( System.out.getClass() ); } } 結果: class java.io.PrintStream

第2回 Hello World

mainメソッドで public class Main { public static void main(String[] args) { System.out.println("Hello World"); } } 結果: Hello World staticを使って public class Main { static{ System.out.println("Hello World"); } } 結果: java.lang.NoSuch…

第1回 Eclipseでインデントをタブではなくスペースにする方法

Eclipseでインデントをタブではなくスペースにする方法 “Window -> Preferences -> Java -> Code Style -> Formatter” から、 Indentationタブを選択。 Tab Policyを「Spaces only」に設定。 左ペインの右のほうで選択できるが、場合によっては見えていない…