Javaの基礎

理論的な話は終わりにして、これからは実際にJavaプログラムを見ていきます。ここでは単純なJavaプログラムを例にあげて、その中で、すべてのJavaプログラムにあてはまる重要な概念について学んでいきます.

コンソール上にメッセージを表示させる。 
class Lesson1{
   public static void main(String args[]){
      System.out.println("こんにちわ");
   }
}
 このプログラムを実行すると次のようになります。
こんにちわ

(解説)


 このプログラムの各行について見ていきましょう。1行目はclassというキーワードで始まっています。これはクラス宣言と呼ばれるもので、クラス宣言とは、「これから○○○○という名前の新しいクラスを作成します.」ということを、プログラムの冒頭で明示的に宣言してやることを言います.ここでは「Lesson1」という名前の新しいクラスを宣言しています。
class クラス名
と記述したら、その後ろを2つの中括弧{ }でくくります.その中括弧は、これから作成するクラスを含むカプセルのようなもので、プログラム中で行わせたいさまざまな処理などは、この中括弧の中に記述していきます.

2行目では、Lesson1クラスの中に、mainという名前のメソッドを定義しています。mainメソッドは次の形でクラス宣言文の{ }の中に1つだけ記述します。
public static void main(String args[]) { }
{ }の中に行わせたい処理の内容を記述します。
Javaアプリケーションが実行されるときには、まずはじめにこのmainメソッドが呼び出されることになっています。したがって、アプリケーションが実行される際に一番はじめに行いたい処理をここに
記述します。

3行目では、文字列をコンソール上に表示させるための命令が記述されています。
System.out.println("表示したい文字列");
これが、コンソール上に文字列を表示するための命令書式で、「”表示させたい文字列”」の部分に記述した文字列が、メッセージとして表示されることになります。
一つの命令文は通常1行で続けて記述し、分の末尾には、;(セミコロン)をつけます。
 変数と代入
プログラムの中で発生するさまざまな値は、そのままでは発生した直後に消滅してしまいます。これをプログラム中のあちこちに運んで利用するために使われるのが変数です。プログラムの中で変数を使うには、まずはじめに変数の宣言を行わなければなりません。変数の宣言とは、「これから○○という変数を使います」ということを、プログラムの中で明示的に宣言することです。次のサンプルプログラムを見てみましょう。
class Lesson2{
   public static void main(String args[]){
      int A;
      A = 24;
      int B = 11;
      char C = 'J';
      System.out.println("変数Aには" + A + "が入っています。");
      System.out.println("変数Bには" + B + "が入っています。");
      System.out.println("変数Cには" + C + "が入っています。");
   }
}
 このプログラムを実行すると次のようになります。
変数Aには24が入っています。
変数Bには11が入っています。
変数CにはJが入っています。

(解説)

 このプログラムはA,B,Cという変数を宣言し、変数に値を入れ、それをコンソール上に表示するプログラムです。

3行目で変数の宣言を行っています。変数Aの前にあるintというのは後述する変数の型を表しています。変数を宣言するときには、必ず変数の型の指定をする必要があります。

変数の宣言を行うと、変数任意の値を入れることができます。変数に任意の値を入れることを、変数への値の代入と言います。4行目では、変数Aに24という値を代入しています。

また、5,6行目のように変数宣言時に、値を代入することもできます。
6行目では文字列型の変数CにJという文字を代入しています。

7、8,9行目のように、Javaでは「+」記号を使うと、文字列と文字列を連結して、1つのつながった文字列にしたり、文字列と数字を連結して、1つのつながった文字列にすることができます。
★Javaの基本データ型★
データ型名 説明 サイズ 扱えるデータの範囲
byte 符号つき整数 8ビット (-128, 127)
short 符号つき整数 16ビット (215, 215-1)
int 符号つき整数 32ビット (-231, 231)
long 符号つき整数 64ビット (-263, 263-1)
float 浮動小数点数 32ビット IEEE 754 規格の 32 ビット浮動小数
double 浮動小数点数 64ビット IEEE 754 規格の 64 ビット浮動小数
char Unicode文字 16ビット Unicode1文字
boolean 真or偽 1ビット true  or  false
プログラムの中で扱う値はすべて何らかのデータ型に分類することができます。データ型とは、文字通り、データの型(タイプ)を示すもので、Javaでは表のような8つのデータ型を取り扱います。
 Javaの演算子
★Javaにおける四則演算★
計算の種類 Javaの演算記号 使用例 結果
足し算 + 6+2 8
引き算 - 6-2 4
掛け算 * 6*2 12
割り算 / 6/2 3
剰余算 % 6%2 0
Java言語には、加減乗除をはじめとしたさまざまな計算を行う手段が用意されています。計算を行うための式の書き方は、私たちが普段目にしているものとあまり変わりませんが、計算を指示する記号である「演算子」は、一般に使われているものと多少異なります。
足し算、引き算、掛け算、割り算をあわせて四則演算と呼びますが、このほかにも算術演算を行うための演算子がいくつか用意されています。こうした算術演算に用いる演算記号のことを、算術演算子と呼びます。
★特殊な算術演算子★
計算の種類 Javaの演算記号 使用例 通常の式 a=6の場合の結果
加算代入 += a += 2 a = a + 2 8
減算代入 -= a -= 2 a = a - 2 4
乗算代入 *= a *= 2 a = a * 2 12
除算代入 /= a /= 2 a = a / 2 3
インクリメント ++ a++ a = a + 1 7
デクリメント -- a-- a = a -1 5
Javaの算術演算子には、上記に示したものの他に少し特殊なものがあります。
加算乗除と代入演算子を組み合わせたもの、および、インクリメント演算子、デクリメント演算子です。それぞれ、表のような働きをします。
★その他の演算子★   記号の左右を比較し、結果を真(true)偽(false)で返します。
演算記号 使用例 式の意味 a = 3、b = 5の場合の結果
> a > b aはbより大きい false
>= a >= b aはb以上 false
< a < b aはbより小さい true
<= a <= b aはb以下 true
== a == b aとbは等しい false
!= a != b aとbは等しくない true
 型変換
代入文で右辺と左辺の変数の型が異なる場合、右辺の変数は左辺の変数の型に変換されます。左辺の変数の型が右辺の変数の型よりも大きい場合は、この処理には何の問題もありません。
class Lesson3{
   public static void main(String args[]){
      byte A = 24;
      int B;
      B = A;
      System.out.println("変数Bには" + B + "が入っています。");
   }
}
int型はbyte型よりも大きいため、このプログラムでは、BにAを代入しても大丈夫です。
このプログラムを実行すると次のようになります。
変数Bには24が入っています。
class Lesson4{
   public static void main(String args[]){
      byte A;
      int B = 24;
      A = B;
      System.out.println("変数Aには" + A + "が入っています。");
   }
}
しかし、左辺の変数の型が右辺の変数の型よりも小さいときは、注意が必要です。
このプログラムでは、5行目の代入文で、「左辺の型<右辺の型」となっているため、型に互換性がなく、代入することができません。
このプログラムはコンパイルできません。
この問題を解決するには、型変換を使用します。型変換の書式は
「 (変換先の型名)変換もとのデータ 」
となります。
このプログラムでは、5行目で、型変換によってBの値が、int型に変換されます。このようにな代入のことを縮小変換と呼びます。

また、この例で、Bの値が、128の場合(byte型に収まらない場合)は下位8ビットだけが変数Aに代入されて、A=1となります。

float型または、double型をint型に代入すると、切り捨てが行われます。
(例) int i = (int)23.4
この場合、i =23となります。
class Lesson5{
   public static void main(String args[]){
      byte A;
      int B = 24;
      A = (int)B;
      System.out.println("変数Aには" + A + "が入っています。");
   }
}