KATOエンジニヤリング開発日誌

「アウトプット無きエンジニアにインプットもチャンスも無い」の精神で書いています

AIITのJavaプログラミング技法を履修しました

第1クォーターに引き続き、産業技術大学院大学の授業を履修しました。

第2クォーターでは「Javaプログラミング技法」という授業を選択しました。

www.kato-eng.info

授業の概要

Javaプログラミング技法を受講することにより、Javaの文法の基礎を習得し、クラスの仕組みを理解しプログラムの読解と作成ができるようになるのがねらいです。

最低到達目標

単位を取得できる最低レベル目標としては下記がシラバスに記載されています。

  • 仕様書に従って1画面200字程度のJava言語のプログラムを単独で2週間程度で作成できるレベル
  • 他のプログラマが作成した200字程度のオブジェクト指向のプログラムを理解し、作業仕様書に従って100字程度の回収を単独で1週間程度で行うことができるレベル

上位到達目標

5段階評価のうち「4」や「5」を取得するために学校側が期待する上位到達目標もシラバスに記載されています。

  • クラスの仕組みを理解し、クラスライブラリを独力で調査及び活用できる
  • 2画面300行程度のアプリケーションをひな形無しで2週間程度の期間で作成できる
  • 調査開発の成果を後進の開発者への指導に活用できる

私は普段、Javaでプログラムを作成することはほとんどありませんが、システム開発エンジニアとしてはやはり上位到達目標は必達だと思います。

実習 HelloWorldを実行する

最初の実習は「eclipseでHelloWorldを出力するプログラムを作成する」という内容でした。

作成したプログラムは下記のようになりました。

package hello;

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

Javaプログラムは必ずクラスが必要で、クラス単位で作成します。1ファイルに複数のクラスを書くこともできるが、1ファイルに1クラスが推奨される。 また、クラス名とファイル名は一致させる必要がある。上記のプログラムではクラス名が「HelloWorld」となっているので、ファイル名は「HelloWorld.java」とする必要がある。

Java言語の文法

局所変数

public static void main(String args[]) {
    int userNum = 6;
}

ブロック内で宣言された変数のことで、上記の例では「userNum」がそれにあたる。ブロックとは上記の例では{}で囲まれた部分であり、「スコープ(有効範囲)」とも呼ばれる。つまり居所変数とは有効範囲が定められている変数のことで、スコープがない変数(どこからでも参照できる変数)はグローバル変数と呼ばれる。変数名はキャメルケース記法を使うのが一般的で、上記例の「userNum」のように先頭文字は小文字にし、それ以降の単語の区切りは大文字にするのが普通。

変数の型

Javaは静的型付け言語のため、変数の宣言の際に変数の型を指定する必要がある。下記に例を示す。

int a;
int n = 6, v = 1;
String msg = "Java";
double value = 0.01;

Javaの型には大きく分けて「プリミティブ型(基本型)」と「参照型」がある。参照型については複雑な概念があるので次回以降の講義で詳しい説明があると思われる。

プリミティブ型(基本型)の種類を下記に示す。

型名 定義 リテラル例
boolean 真偽値 true, false
byte 8ビット符号付整数 0x7f, -0x80
char 16ビット符号無し整数 ‘A’, 0xffff
short 16ビット符号付整数 -32768, 32767
int 32ビット符号付整数 -2147483648, 2147483647
long 64ビット符号付整数 9223372036854775807L
float 単精度浮動小数点数 3.14f, 2e3f
double 倍精度浮動小数点数 3.14, 2e3

Javaの演算子

変数やリテラルに対して演算を行うための符号で5種類ある。

  • 算術演算子
  • 関係演算子
  • 代入演算子
  • インクリメント演算子
  • 論理演算子

算術演算子

// 変数aとbはint型である
a + b // 加算
a - b // 減算
a * b // 乗算
a / b // 除算
a % b // 剰余
+a    // 符号維持
-a    // 符号反転

関係演算子

// 結果はboolean型で返却される
a == b // aとbが等しければtrue
a != b // aとbが等しくなければtrue
a < b  // aとbを比べてaが小さい場合true
a <= b // bがa以上であればtrue
a > b  // aとbを比べてaが大きい場合true
a >= b // aがb以上であればtrue

代入演算子

// 右結合
a = 3 // aという変数に3という数字を代入する
a = b = c = d = 3 // dから順に3が代入され、結果全て3になる

// 複合代入演算子
// *=, /=, %=, +=, -=, <<=, >>=, >>>=, &=, ¥^=, |=

インクリメント演算子

a++ // aに「a + 1」を代入する、更新前のaを返却する
++a // aに「a + 1」を代入するのは同様だが、更新後のaを返却する

論理演算子

boolean型の値に対する演算

a && b // 論理積
a || b // 論理和
!a    // 否定

※次回授業の内容はこちら

www.kato-eng.info