[PR] 迷惑メール トップページプロ3ゼミJavaJava入門講座一学期単位2 →2時間目

2時間目 変数

2−2−1.変数を知ろう

変数を学ぶ前に、以下のサンプルを見てください。

Sample2_2_1.java
public class Sample2_2_1 {
    public static void main(String[] args) {
        new Variable().view();
    }
}

class Variable {
    public void view() {
        int     hoge;
        hoge = 10 + 20;

        String  piyo;
        piyo = "文字列";

        System.out.println("hoge = " + hoge);
        System.out.println("piyo = " + piyo);
    }
}
hoge = 30
piyo = 文字列

 講義2の3時間目の間にサンプルを何個か見せてきましたが、今までは画面に出力しただけでした。
見てて思ったかもしれませんが、この文字列をどこかに記憶できたら他でも使えるから便利なのにと気が付か れたかもしれません。
変数は、文字列の記憶や数値などを記憶するために使います。

 数学の公式でも変数を見た事があると思いますが、Javaでも意味は同じです。
定数は、サンプルで見せた10及び20で不変である数ですが、変数は、可変である数での事です。

 変数は、サンプルを見て分かるようにデータを記憶します。
保持する場所はどこかと言うとメモリ(主記憶)です。

 メモリは、アドレスで管理されているのは、私たちの住所(アドレス)と変りありません。
メモリは、住所と同じように数値で管理されているため、私たちプログラマーにとっては、覚えづらいです。
そこで、Javaでは変数を宣言し変数名(別名:エリアス)をつける事によって、変数名でデータを参照又は記 憶する事ができるのです。

 現在、使っているWebも別名を使ってアクセスしているはずです。
例えば、http://google.co.jp/のURLは、IPアドレスで表すと 66.249.89.99です。
普段使っているのは、ドメイン(別名)と言う事になります。
よって、http://66.249.89.99/でもGoogleにアクセスできるのでぜひ試 してみてください。

 C++では、変数名に&をつけるとその変数のアドレスが表示されます。
C++の解説は、省略しますが変数名の前に&をつけるとアドレスが表示されると理解し、参考までに見てくださ い(実行する必要はありません)。

Sample2_2_2.cpp
#include <iostream>
#include <string>
using namespace std;

int main()
{
    int     hoge;
    hoge = 10 + 20;

    string  piyo = "文字列";

    cout << "hoge = " << hoge << endl;
    cout << "piyo = " << piyo << endl;

    cout << "hogeのアドレス = " << &hoge << endl;
    cout << "piyoのアドレス = " << &piyo << endl;

    return (0);
}
hoge = 30
piyo = 文字列
hogeのアドレス = 0012FECC
piyoのアドレス = 0012FEB0

※C++のプログラムを実行した場合、アドレスはコンピュータ又はコンパイラによって違うアドレスが表示されます。

 ドメイン名とIPアドレスの例で説明すると、&ドメイン名でIPアドレスに置き換える事ができます。

 Javaには、アドレスを表示される事ができません。
理由はいろいろと考えられますが、一つにはアドレスを知る必要がないと言う事でしょう。
普段私たちがWebにアクセスする時にドメイン名でアクセスし、最近では検索エンジンにキーワードで検索し該当 Webにアクセスするはずです。

2−2−2.変数の規則

 変数を使うにはいろいろと規則があります。

 変数名(識別子)、予約語・キーワード、変数の宣言、代入及び初期化それぞれ解説します。

変数名(プログラミング規則)
変数名は、規則があり以下の制限を受けます。
1.英字、数字、_(アンダースコア)及び$で構成される。
2.先頭に関しては、1の中で数字を使う事が出来ない。
3.長さは、制限がありません。
4.予約語・キーワードは、使えません。

 変数の名前、予約語・キーワード表は、原則でこれでも特に困りませんが、細かい注意がいくつかありま す。

 1には、漢字(プログラミング規則によりUnicodeを使っているためUnicodeの範囲)が使えます。
コンピューターやプログラムがアメリカ等で開発された事もあり、漢字の名前は殆ど使われていないのが現状です。
又、英字の小文字及び英字の大文字は区別されますが、Javaでは、先頭の単語が小文字で2個目の単語以 降先頭が大文字を使うのが慣例となっています(Java主義)。
参考までに、JavaのAPIを見てみるとその事が分かるでしょう。

 3にこのような事がかかれていますが、常識の範囲といえるのはJavaだけではなくプログラム共通です。

 4の予約語・キーワードとは、Javaが予約しているキーワードです。

 変数名の例を示します。

_100      変数の規則です。
$100      変数の規則です。
/100      変数の規則に違反しています。/は変数名には使えません。
goto      変数の規則に違反しています。予約語です。
goto100   変数の規則です。一部に予約語が使われていても問題ありません。
100goto   変数の規則に違反しています。数字を先頭に使う事が出来ません。

2−2−3.Javaの予約語・キーワード

 予約語・キーワードという言葉が使われていますが、変数にも関係するだけではなくJava全体に関係してき ます。
 予約語とは、ある語がJavaによって予約されている又はJavaが特別な意味として取られている語と言えます。
ちなみに、Sample2_2_1.javaの「int」もその一つです。
予約されているものは、以下の通りです。

Javaの予約語・キーワード(プログラミング規則)
abstractconstfloatlongstatictry
assertcontinuefornativestrictfpvoid
booleandefaultgotonewsupervolatile
breakdoifpackageswitchwhile
bytedoubleimplementsprivatesynchronized
caseelseimportprotectedthis
catchextendsinstanceofpublicthrow
charfinalintreturnthrows
classfinallyinterfaceshorttransient

 変数名の付け方を理解したところで、Sample2_2_3のサンプルを見てください。

Sample2_2_3.java
public class Sample2_2_3 {
    public static void main(String[] args) {
        new VariableRule().view();
    }
}

class VariableRule {
    public void view() {
        int    hoge;                        // 変数の宣言、変数名はhoge
        double piyo = 0.0;                  // 宣言と同時に初期化

        hoge = 10;                          // hogeに整数を代入

        System.out.println("hoge = " + hoge);
        System.out.println("piyo = " + piyo);
    }
}
hoge = 10
piyo = 0.0

 ソースの「int hoge」は変数を宣言しその変数名でメモリを使用する事が出来るようになります。
ここで、「double piyo = 0.0」がありますが、これは変数の宣言と同時に浮動小数の「0.0」で初期化しています。
初期化は、メモリを使用する事が出来ると同時にその「0.0」を記憶させているということです。
この事をJavaでは、変数の初期化と呼びます。

 初期化は何のためにあるかですが、深く考える必要はありません。
プログラム行数を一行減らせるとか、変数の初期化忘れを防止できるぐらいに捉えてください。

 プログラム言語によっては、変数に何も値を代入しなくてもコンパイルは通ます。
Javaの場合は、変数の初期化忘れで変数に何も代入しなかった場合はコンパイルエラーになります (プログラミング規則)。

 変数に値を代入するとメモリにその値が記憶されます。
変数を初期化する前に、値を参照しようとするとコンパイルエラーになります。

 変数の宣言を2つ以上使用するには、カンマ演算子があります。
例は、3つの整数を宣言した場合です。

int x, y, z = 0;

 変数x、y及びzを宣言し、zを0で初期化します。


1時間目 リテラルと文字コードに戻る     3時間目 型と式・演算子に進む

単位2 ソースの基本に戻る

トップページに戻る