2011/11/27

メソッドの構造

型 メソッド名(パラメータリスト){
戻り値の型            引数
}

void  戻り値を返さない型

public static void main(String args[]){} // String型のargsという配列を定義
public static void main(String[] args){} も同じ

例外処理
型 メソッド(引数) throws exceptionList { } //exceptionListは例外の型を示すリスト

配列を引数にする

int array[] = new int[3];
array[0] = 1;
array[1] = 2;
arrya[2] = 3;
int test =   displayInts (int array[]) {
 System.out.println("array[0] = " + array[0]);
 System.out.println(" test  = " + test );
}

static int displayInts(int dis[]) {
                                 ↑受け取り
  int ans = dis[0];
  dis[0] = 10;
  return ans;
}

配列の場合、受け取った側で値を変えると元の値も変る。
dis[0] = 10; にすると array[0]も10になる。

変数の場合は変らない。

2011/11/25

配列

1次元配列
int a[];  //  参照変数。領域はまだない。

a = new int[10]; // new演算子を使って10個領域を割り当てる。

まとめて書くと

int a[] = new int[10];

a[1] = 2;  // 配列の2番目に2を代入

a.length で配列の要素数を取得


初期化(new演算子を使わない書き方)と参照

int a[] = { 1,2,3,4 };

int b[];

b = a; // 配列そのものが物理的にコピーされるわけではない。

a[2] = 5; とすると
b[2] は5となる。

------------------------------------------------------------------------------
多次元配列
double da[][];  // 2次元配列の宣言

da = new double[2][3]; //  領域割り当て

まとめて書くと

double da[][] = new double[2][3];

da.length は1次元の要素数を取得 3つ *1

da[1].length はda[1]の配列の要素数を取得 4つ *2


da     [0]  [0][1][2][3]
        [1]  [0][1][2][3] ←これ*2
        [2]  [0][1][2][3]
        ↑
         これ*1

int array[][] = {
  { 1,2,3 },
  { 4,5,6 },
  { 7,8,9 }
};




2011/11/24

Javaプログラミングのルール


  • クラス名とファイル名は同じにする。
  • クラス名の最初の文字は大文字にする。
  • メソッド名は小文字にする。2単語目の最初の文字は大文字にする。 exsampleMain
  • コードブロックに応じてインデント(文字下げ)をする。
  • ソースコードをコンパイルしたものをバイトコードという。他言語ではバイナリコードと呼ぶ。

Javaクラスライブラリ

Javaには豊富なクラスライブラリが定義されている。

パッケージ・・・・・クラスの集まり

JavaTM Platform, Standard Edition 6 API 仕様
http://java.sun.com/javase/ja/6/docs/ja/api/


java.lang - Math - randam()
パッケージ クラス  メソッド

オブジェクト指向プログラミングの3つの原則

1:カプセル化
2:継承
3:ポリモーフィズム
-------------------------------------------------------------------------------
1:カプセル化
データとそれを操作する手続きを一体化して「オブジェクト」として定義し、オブジェクト内の細かい仕様や構造を外部から隠蔽すること。外部からは公開された手続きを利用することでしかデータを操作できないようにすることで、個々のオブジェクトの独立性が高まる。カプセル化を進めることによりオブジェクト内部の仕様変更が外部に影響しなくなり、ソフトウェアの保守性や開発効率が高まり、プログラムの部分的な再利用が容易になる。
http://e-words.jp/w/E382ABE38397E382BBE383ABE58C96.html

-------------------------------------------------------------------------------
2:継承
オブジェクト指向プログラミングにおいて、既に定義されているクラスをもとに、拡張や変更を加えた新しいクラスを定義すること。元になるクラスを「スーパークラス」(super class)、あるいは「基底クラス」「基本クラス」(base class)などと呼び、新たに定義されたクラスを「サブクラス」(subclass)、あるいは「派生クラス」(derived class)と呼ぶ。スーパークラスの性質はすべてサブクラスに受け継がれ、サブクラスではスーパークラスとの違いを定義するだけでよい。複数のスーパークラスから新しいクラスを定義することを多重継承という。
http://e-words.jp/w/E7B699E689BF.html

-------------------------------------------------------------------------------
3:ポリモーフィズム

同名のメソッドや型などをオブジェクトの種類に応じて使い分けることができる性質のこと。日本語では「多相性」「多態性」「多様性」などと訳される。

オブジェクト指向プログラミング言語では、関連する一まとまりのデータとそれを操作する関数などの組み合わせを「オブジェクト」として定義していき、これを組み合わせてプログラムを記述していく。オブジェクトの定義を定めた雛形を「クラス」と呼び、上位のクラスの性質を引き継いだ上で、他の性質を加えた新しいクラスを作成することを「継承」と呼ぶ。

この継承を行う際に、上位のクラスの関数を新しい関数の定義で置き換えることを「オーバーライド」と呼び、クラスによって同一のメソッドで異なる処理が行われる性質をポリモーフィズムという。
http://e-words.jp/w/E3839DE383AAE383A2E383BCE38395E382A3E382BAE383A0.html