Javaを1から勉強開始。
基本的なことを箇条書きでまとめてみます。
Javaの文法について
・{ }のことをパーレンまたは中カッコという。
・{ }はブロックのはじめと終わりを表す。
・{ }を使って複数のブロックに分割することで、どこからどこまでが何をしているのかを見通しやすくしている
・{ }の前の文で、そのブロックの役割が決まる。
・字下げはブロックを見やすくするためのもの。全て取り去っても結果は変わらない。
・字下げ位置がくずれたらCtrl(Macの場合はcommand)+Shift+FキーでEclipseが自動的に設定し直してくれる
・クラスという部品を作り、それを組み合わせてひとつのプログラムを作る。
・クラスのブロック内にpublic static void main(String[ ] args)で始まるブロックがあり、mainメソッドという。
・mainメソッドのことをエントリーポイントという。
・エントリーポイントはプログラムの起動時に最初に呼び出される。
・空白や改行は自由。( )や{ }も1語に数えられるのでその前後に空白を入れることができる。
・文の最後には;を入れる
・//が付いた行と/* 〜 */で挟まれた行はコメント文。コメント文はコンパイラに無視される。
・基本的には半角文字だけを使用する。
・全角文字が使えるのは文字列のリテラルかコメント文の中だけ。
・大文字・小文字が区別される。
・System.out.print( )はSystemクラスのoutフィールドに代入されているPrintStreamクラスの
printメソッドを実行するという意味。
・メソッドはJavaに標準で付属されているクラスライブラリの中に書かれている。
・文字のリテラルは”で囲む
・リテラル literal→ありのままの意味 コンピュータ用語では定まった数、変化しない数の意味
・変数には半角アルファベット、半角数字、_を組み合わせた名前をつける。
数字だけ、_だけ、class、publicなどのJavaで予約されている名前は使えない。
・変数の宣言をした行がスコープの開始位置
・変数の宣言があるブロックの最後が、スコープの終了位置
・スコープの終了位置より後なら同じ名前の変数を宣言できる。
オブジェクト指向について
・Javaはオブジェクト指向。まず、どんな部品が必要かを考える。
・次にそれぞれのオブジェクトが持つメソッドとフィールドを考える→クラスを定義
・メソッドはそのオブジェクトに対する命令
・フィールドはどのオブジェクトが持つ変数
・インスタンスとはクラスをもとに作られた実際に操作することのできる部品(メモリ上に存在)
・インスタンスはnew演算子を使って作成
・メソッドを利用するには変数名の後に.演算子を付け、その後にメソッドを書く。
・メソッドに渡す引数は( )内に書く
・フィールドを利用する場合も変数名の後に.演算子を付け、フィールド名を書く。
・空の状態をnull というキーワードで表す。
・空のクラス方変数のメソッドやフィールドを利用しようとすると、NullPointerExceptionというエラーが発生する。
・int、float、booleanなどの小文字の名前の型はプリミティブ型と呼ばれる。
・プリミティブ型はJavaの言語仕様の中に最初から組み込まれている。
・プリミティブ型はクラスではないため、インスタンスという概念がなく、メソッドもフィールドも持っていない。
・プリミティブ型をサポートするためのメソッドは、java.langパッケージのIntegerクラスやFloatクラスなどの
ラッパークラスの中に定義されている。
JavaTM Platform, Standard Edition 6 API 仕様
JavaのGUIについて
・Javaで作るプログラムには「Javaアプリケーション」「Javaアプレット」「Javaサーブレット」の3種類がある
・Javaアプリケーション→デスクトップ上で動作するプログラム。ウィンドウを作成し、その上にパーツを配置。
・Javaアプレット→Webページに埋め込めるプログラム。Flashムービーのような感じに使う。
・Webサーバ内で動かす特別なプログラム。CGI的な使い方をする。
・GUIの種類も3つ。
・AWT(Abstract Window Toolkit)
OSのGUIを利用。比較的動作が軽いとされているが、すべてのOSのにある基本的な部品しか利用できない。
単純なGUIしか作れない。
・Swing
ほぼすべての処理がJavaで書かれている。
AWTよりも要求スペックが高くなるが、スピンボタン、テーブルなど数多くの部品が利用可能
・SWT(Standard Widget Toolkit)
Eclipseで使われているGUIで、OS専用のプログラムとJavaのハイブリッドになっている。
AWTよりも複雑なGUIを作成可能。
Swingよりも軽快に動作する。
その代わりにOSごとに専用バージョンを用意する必要がある。
とりあえず、これだけのことは頭に入れた。