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

2011/11/23

ifステートメント

if ( 条件式 ) {
  trueのときに実行される
} else {
  falseのときに実行される
}

関係演算子
==        等しい
!=         等しくない
>          より大きい
<          より小さい
>=         より大きいか等しい
<=         より小さいか等しい

forステートメント


for (初期化式; 条件式; 変化式){
  実行文;
}


for ( int i = 0;        i <= 10;      i = i + 1 ) {
          iの初期値    i<10のとき   一回{}の中を実行したら
                                  {}の中を実行   i = i + 1を実行する
}

i = i + 1 は i++ と書ける

int0 = int1++ の場合
① int0にint1を入れる
② int1 = int1 + 1 を実行

int0 = ++int1 の場合
① int1 = int1 + 1 を実行
② int0にint1を入れる

int sum = 0;
  for (int i = 1; i <= 10; i++) {
    sum += i;
  }
System.out.println("合計は" + sum + "です。");

 sum += i ⇒ sum = sum + 1


int max = 2;
int count;
count = 10 * max++; // 10 *maxが先にcountに代入される。次にmax=max+1する
max は 3
count は20 になる

-----------------------------------------------------------------------------
for文内で宣言した変数は{}のブロックを出ると使えなくなる。
使う場合はforの前に宣言する。

int a = 0;

for (int b = 0 ; ; ){
  System.out.println(a)    // 変数a は使える
  System.out.println(b)    // 変数b は使える
}

System.out.println(a)     // 変数a は使える
System.out.println(b)     // 変数b は使えない

-----------------------------------------------------------------------------
初期化式と変化式は複数書ける。

int i, j;

for (i = 1, j = 9; i < 10; i++, j--){
  System.out.println("i = " + i + ",j = " + j);
}

for文内で同じデータ型の場合は int i = 1, j = 9; と書けるが違う場合、
int i = 1, double d = 1.0 のようには書けない。


雑学

jisコード
0A (LF) Line  Feed  \n NL(New Lineともいう)
0C (FF) Form Feed
0D (CR) Caridge Return

IEEE802.11
a  最大54Mbpsの伝送速度 bと互換性はない    5GHzの周波数帯を使用
b  最大11Mbpsの伝送速度 古い         2.4 GHzの周波数帯を使用
g  最大54Mbpsの伝送速度          2.4 GHzの周波数帯を使用
m 最大165Mbpsの伝送速度 WiMAX 2      20 MHzの周波数帯を使用
n
ac
ax

2018年10月3日に名称変更された。
802.11n → Wi-Fi 4
802.11ac → Wi-Fi 5
802.11ax → Wi-Fi 6

2011/11/21

コンパイル

sample.javaファイルがドキィメントのsampleフォルダにあるとする.。
c:\Users\username\Documents\sample

1:コマンドプロンプトを起動させる。
2:>cd c:\Users\username\Documents\sample と入力する。右クリックで貼り付けできる。
3:>javac sample.java と入力して実行すると同じフォルダにコンパイルされたsample.classファイルができる。
4:>java sample と入力して実行すると、sample.javaのプログラムが実行される。
↑classは書かなくていい

コマンドプロンプトのコマンド
cd チェンジディレクトリ
cd /d d: Dドライブに移動
dir ディレクトリの中を表示 linuxはls
上下のキーで履歴を出せる


sample.java の中身

public class sample {
  public static void main(String args[]) {
    System.out.println("Hello world!");
  }
}

2011/11/20

変数と代入

char キャラ        16ビットのUnicodeキャラデータ
boolean ブーリアン   真偽値 true:真 false:偽
byte バイト         8ビット符号付整数
short ショート      16ビット符号付整数
int イント         32ビット符号付整数
long ロング        64ビット符号付整数
float フロート      32ビット符号付浮動小数点数
                              サフィックスとしてfをつける float f = 0.8f;
double ダブル      64ビット符号付浮動小数点数

符号付整数
 0000  0000 0000 0000

ここが0ならプラス、1ならマイナス

符号付浮動小数点数
[][][][][][][][][][][][]■■■■
数値         何桁目に小数点が入るかのデータ

----------------------------------------------------------------------------------

サフィックス
【suffix】
03.6.25更新
分野 :
プログラミング
 ▼ 文中の用語


「接尾辞」という意味の英単語で、分野によって意味は異なるが、何らかの文字列データの末尾の文字列のことを指す。もっとも多い用法は、「DNSサフィックス」(ドメインサフィックス)と、ファイルの「拡張子」である。

DNSサフィックスとは、FQDN(完全修飾ドメイン名)ではない部分的なホスト名などを指定した場合に補われるドメイン名のことで、OSのネットワーク設定の項目の一つである。ファイルの拡張子は、ファイル名のうしろに「.」で区切ってつける数文字の英数字のことで、ファイルの種類を表す。

他にも、ソフトウェアの設定ファイルの記述やプログラミングなどの分野で、「末尾につけて何らかの意味を付与する文字列」という意味でサフィックスという用語が用いられる。

http://e-words.jp/w/E382B5E38395E382A3E38383E382AFE382B9.html

16進数と2進数

10進数 2進数 16進数
1     0000    0
1     0001    1
2     0010    2
3     0011    3
4     0100    4
5     0101    5
6     0110    6
7     0111    7
8     1000    8
9     1001    9
10          1010     A
11          1011     B
12          1100     C
13          1101     D
14          1110     E
15          1111     F

1ビットが0と1
4ビットで16進数の0からFの1桁
8ビットで16進数の2桁
16ビットで16進数の4桁

16ビット
0000 0000 0000 0000
0011 0001 0011 1010
  3      1   3   A

2:Pathの設定

Vistaの場合
1:コントロールパネルのシステムを開く。[スタートボタン]⇒[コンピュータ]を右クリック⇒[プロパティ]
2:左側の一番下のメニュー[システムの詳細設定]をクリック
3:[詳細設定]のタブを選択。一番下の[環境変数]をクリック
4:下の欄のシステム環境変数の中の[Path]をWクリック
5:変数値のところに[;c:¥java¥jdk1.6.0_29¥bin]を追加する。セミコロンを忘れないようにする。

1:JDKのインストール

Java SE のダウンロード
http://www.oracle.com/technetwork/jp/java/javase/downloads/index.html

1:Java SE 6 Update 29 のDownloadをクリック
2:Accept License Agreement のラジオボタンを選択
3: Windows x86 76.81 MB   jdk-6u29-windows-i586.exe をクリック

Java SE のインストール
1:jdk-6u29-windows-i586.exe をWクリック
2:インストール場所を「Program Files」の中ではなくCドライブ直下「c:¥java¥jdk1.6.0_29¥」に変更
3:インストールが終わると、今度はJREをインストール画面になるのでまた同じ場所に変更させてインストール