Java 画面作成〜JavaFX〜

イントロダクション

夏休みなので、ラズパイを使って自由研究と洒落込もうと考えました。
そして、ラズパイで何をやろうか?と考えました。

JavaFXアプリケーション

Javaで作成した画面をラズパイに表示してみようと思います。
まずはここからです。これだけではつまらないので何かを実装して動かしたいのですが、予定通りに行くことは稀なのでとりあえずはここまでやる事にします。

手順(How to)

  1. JavaFxで画面を作成する。Create View by JavaFx.

    public GamenClass extends Application {
    public static void main(String[] args) {
      launch();
    }
    /** 
    * 画面を実装するメソッド
            * Application#startをオーバーライドします。
    */
    @Override
    public void start(Stage primary) {
       TextArea area = createTextArea();
       Group root = new Group();
       root.getChildren().add(area);
       Scene scene = new Scene(root, VIEW_WIDTH, VIEW_HEIGHT);
       primary.setScene(scene);
       primary.show();
    
       // プロパティファイルのロード
       ResourceBundle bndle = ResourceBundle.getBundle(CMD_PROPERTY);
       System.out.println("Properties: " + bndle.getString("acc"));
    }
    }

    ソースにするとこんな感じになります。
    大雑把にGroupクラスを作って(new Group())、Stageに追加(add)、そしてSceneをStage追加、そして表示(show())するだけで画面が表示できます。
    Groupクラスに作成した画面コンポーネント(テキストエリアetc)を追加する事で表示画面に必要な部品(ボタンなど)を追加していきます。

サンプルのソースはこちらになります。
Sample code is this.

でわでわ。。。
See you next time. have a good day!

Java Basic Level 6 〜Traning of If statement〜

イントロダクション

再度、復習の意味で以前記載したものを再度やります。
今回はIf文の使い方〜応用〜をやります。
だんだんとやることが複雑になってきます。ロジックを楽しんでください。

Introduction

I will write again what how to use value of boolean. And Tihs time, Write about Application of If statement.
It will guradually become more. enjoy create logic.

ロードマップ

  1. Booleanの扱い方
  2. If文の使い方
  3. If文の使い方〜応用編〜 今回
  4. ループ処理〜For文〜
  5. ループ処理〜For文の応用〜
  6. ループ処理〜While文〜
  7. ループ処理〜While文の応用〜
  8. ループ処理〜Do While文〜
  9. ループ処理〜Do While文の応用〜
  10. 演算子の整理
  11. 演算子の応用
  12. まとめ

Road Map

  1. How to use Boolean
  2. How to use if statement
  3. Training of  if statement This time
  4. How to use loop statement 〜While〜
  5. Training of Loop〜While〜
  6. How to use loop statement 〜While〜
  7. Training of Loop〜While〜
  8. How to use loop statement 〜Do While〜
  9. Training of Loop〜Do While〜
  10. Summary of operator
  11. Training of operator
  12. Summary

If文の使い方〜応用〜

前回は、単純なIf文、条件が1つでTrue / Flaseの判定を行いました。

今回は「If文の応用」と称してBooleanの扱い方の応用編をやろうと思います。

Application of If statement

we tried basic If statement. next it Called Application of If statement. that is application of how to use boolean

<Booleanのサンプル動画>

<解説動画>

変数の使い方

変数には「型」があります。これは「=」演算子を使用して対象の変数に値をセットするために使用します。
例えば、文字列(String)型の変数には数値はセットできません。

String str = 1;

しかし、文字列はセットできます。

String str = "1";

これらの違いは何か?というと「”(ダブルクォーテーション)」の有無です。

リテラルとは

リテラルとは、「値」のことを言います。そして、その書き方で「型」が決まってきます。
明確に言うならば「=」の左側が「変数」で右側が「リテラル」です。

※While文の解説とリテラルの解説をしています。

Booleanの演算方法あれこれ

今までの、論理演算=>「1 == 1」とか「"aaa".equals("aaa")」のようなシンプルなものでした。今度は実際に使用できるようにちょっと複雑にした論理演算を行いたいと思います。

<解説>

public static void main(String[] args) {
   boolean flg = false;
   if ("test".equals(args[0])) {
      flg = true;
   }
   // 条件演算子(三項演算子)
   int val = flg ? 1 : 0;
   if (val == 1) {
     System.out.println("プログラム引数はtestです");
   } else {
     System.out.println("プログラム引数はtestではありません");
   }
}

boolean「flg」をfalseで初期化します。
プログラム引数が「test」の場合、flgをtrueに変更します。
そして、ここがキモになります。
flgがtureであれば「1」、falseであれば「0」を変数valに設定します。

あとは、問題なく読めると思います。
読めなかったら、一個前のブログに戻って見てください(まとめを覗きます)

三項演算子

三項演算子は次のように使います。1行で処理を書けます。

変数 result = 論理演算 ? TRUEの場合 : FALSEの場合;

これをIF文で行うと下のようになります。

変数 result;
if (論理演算) {
   result = TRUEの場合;
} else {
   result = FALSEの場合;
}

筆者としては三項演算子を使う方が好きなコードです。

「かつまた」を使う

「かつまた」?なんじゃ?と思った方正常でございます。つまりは、「&&」と「||」の使い方を記載したいということです。
論理演算なので、論理的に考えてみたいと思います。
<解説>

こんな時はフローチャートを使用するとわかりやすいです。

上のフローチャートは作成中のテキストRPGの処理を表したものです。

処理の順番を示しているところでひし形のマークが条件分岐を表します。この条件分岐をするときに使用するのがBooleanであり、これを複数の条件を考慮して判定したい時に「かつまた」を使用する。。。というわけです。

Booleanと「かつまた」の使い方

条件分岐ではTRUEとFALSEで基本的には2つの分岐を行います。

if (論理演算) {
   // TRUEの場合
} else {
   // FALSEの場合
}

しかし、現実にはもっと条件を増やしたい場合があります。

「かつ」の使い方

論理演算1と2を使いたい時などで、「かつ」が利用できます。これは下の表のように論理演算が行われます。

論理演算1 AND 論理演算2 結果
TRUE && TRUE TRUE
TRUE && FALSE FALSE
FALSE && TRUE FALSE
FALSE && FALSE FALSE
if (論理演算1) {
   // 論理演算1がTRUEの場合※論理演算2はFALSE
   if (論理演算2) {
     // 論理演算1がTRUE「かつ」論理演算2がTRUE
   }
} else {
   // 論理演算1がFALSEの場合※論理演算2もFALSE
   if (論理演算2) {
     // 論理演算1がFALSE「かつ」論理演算2がTRUE
   }
}

上のように書くと、筆者的にはあまり好みではありません。
なので、下のように書きたいと思うのです。これでネストする必要がありません。
そして、「論理演算」のみの部分はTRUEであればかっこの中に処理が進みます。明確にすると下の表のようになります。

NO 論理演算1 論理演算2
1 true false
2 true true
3 false false
4 false true
if (論理演算1 && 論理演算2 == false) {
   // No1. 論理演算1がTRUEの場合「かつ」論理演算2がFALSE
} else if (論理演算1 && 論理演算2) {
   // NO2. 論理演算1がTRUE「かつ」論理演算2がTRUE
} else if (論理演算1 == false && 論理演算2 == false) {
   // NO3. 論理演算1がFALSE「かつ」論理演算2がFALSE
} else if (論理演算1 == false && 論理演算2) {
   // NO4. 論理演算1がFALSE「かつ」論理演算2がTRUE
}

説明のために上のように並べましたが、見ずらいので下の用に書き換えた方が良いと思います。下のように入れ替えます。
普通に、そろっている方が見やすいですよね。

NO 論理演算1 論理演算2
2 true true
1 true false
4 false true
3 false false
if (論理演算1 && 論理演算2) {
   // NO2. 論理演算1がTRUE「かつ」論理演算2がTRUE
} else if (論理演算1 && 論理演算2 == false) {
   // No1. 論理演算1がTRUEの場合「かつ」論理演算2がFALSE
} else if (論理演算1 == false && 論理演算2) {
   // NO4. 論理演算1がFALSE「かつ」論理演算2がTRUE
} else if (論理演算1 == false && 論理演算2 == false) {
   // NO3. 論理演算1がFALSE「かつ」論理演算2がFALSE
}

「また」の使い方

「かつ」と似て非なるものです。「かつ」のほぼ逆の演算結果を返します。
「かつ」の場合は、両方とも「TRUE」のときのみTRUEを返しましたが、「また」の場合は両方とも「FALSE」の時のみ「FALSE」を返します。

論理演算1 OR 論理演算2 結果
TRUE || TRUE TRUE
TRUE || FALSE TRUE
FALSE || TRUE TRUE
FALSE || FALSE FALSE

下の処理の場合は、初めの「NO2」がTRUEになるので、NO2の処理を行いますが、ほかの部分もTRUEになるので不適当なコードになります。

NO 論理演算1 論理演算2
2 true true
1 true false
4 false true
3 false false
if (論理演算1 || 論理演算2) {
   // NO2. 論理演算1がTRUE「かつ」論理演算2がTRUE
} else if (論理演算1 || 論理演算2 == false) {
   // No1. 論理演算1がTRUEの場合「かつ」論理演算2がFALSE
} else if (論理演算1 == false || 論理演算2) {
   // NO4. 論理演算1がFALSE「かつ」論理演算2がTRUE
} else if (論理演算1 == false || 論理演算2 == false) {
   // NO3. 論理演算1がFALSE「かつ」論理演算2がFALSE
}

まとめた形の「かつまた」使用例

下のコードは「かつ」しか使っていないですが。。。
下のコードは、XMLファイルを読み込んだ後に、タグに対応したクラスを生成する処理を行っています。
タグ名、階層の深さ(level)、親クラスの3つを引数に持っています。

それぞれ、条件としては以下の通りです。

<パターンA>

  1. タグ名がXXXの時、かつ階層がレベルXXの時
  2. XXXクラスを生成し返却

もしくは、

<パターンB>

  1. タグ名がXXXの時、かつ階層がレベルXXの時
  2. 親クラスのフィールドを生成し対象クラスをセット
    public static ConfigIF createConfig(String tagName, int level, ConfigIF conf) {
        Class<? extends ConfigIF> child = null;
        if (StoryConfig.WORLD_TAG.equals(tagName) && level == 0) {
            // パターンA
            return new World();
        } else if (StoryConfig.NATURE_TAG.equals(tagName) && level == 1) {
            // 以下パターンB
            // 自然
            World world = (World) conf;
            world.setNature(new Nature());
        } else if (StoryConfig.CLIMATE_TAG.equals(tagName) && level == 2) {
            // 気候
            World world = (World) conf;
            world.getNature().getClimateList().add(new Climate());
   }

上記の例は、「かつ」の例です。
この「かつ(&&)」を「または(||)」にすれば、条件が変わるというわけです。

「かつまた」= ANDとOR

上記の演算子は、かつ(AND)とまたは(OR)のことを言いたかっただけですので、深く考えないようにしてください。
論理演算は、使用するデータ量が少ない(1bit)なので、うまく使うとSDGsなコードになります。

何度も同じようなことを記載しますが、次のようになっています。

// TRUE && TRUE => TRUE
boolean isTrure = true && true;
// FALSE && TRUE => FALSE
boolean isFalse = true && true;
// TRUE && FALSE => FALSE
boolean isFalse1 = true && true;
// FALSE && FALSE => FALSE
boolean isFalse2 = true && true;

// TRUE || TRUE => TRUE
boolean isTrure = true || true;
// FALSE || TRUE => TRUE
boolean isTrure1 = false || true;
// TRUE || FALSE => TRUE
boolean isTrure2 = true || false;
// FALSE || FALSE => FALSE
boolean isFalse = false || false;

早い話が。。。

  • 「かつ(&&)」は両方ともTRUEの時のみTRUE
  • 「または(||)」は両方ともFALSEの時のみFALSE

というわけです。

<問題>
2つのプログラム引数に数字を渡して、2つの値を足し算した結果をコンソールに出力するプログラムを作成してください。

Some way of using Boolean

we tried simple way of using boolean. like (1 == 1) and ("aaa".equals("aaa"))

Eclipse セットアップ

  1. Java Install Eclipse〜開発ツールのインストール〜
  2. TensorFlow C++環境〜EclipseCDTをインストール〜
  3. Setup OpenGL with JavaJOGLを使う準備 for Eclipse
  4. Eclipse Meven 開発手順〜プロジェクトの作成〜
  5. Java OpenCV 環境セットアップ(on Mac)
  6. Eclipse SceneBuilderを追加する
  7. JavaFX SceneBuilder EclipseSceneBuilder連携~

Java Basic一覧

  1. Java Basic Level 1 〜Hello Java〜
  2. Java Basic Level2 〜Arithmetic Calculate〜
  3. Java Basic Level3 〜About String class〜
  4. Java Basic Level 4〜Boolean〜
  5. Java Basic Level 5〜If Statement〜
  6. Java Basic Summary from Level1 to 5
  7. Java Basic Level 6 〜Traning of If statement〜
  8. Java Basic Level8 〜How to use for statement〜
  9. Java Basic Level 8.5 〜Array〜
  10. Java Basic Level 9〜Training of for statement〜
  11. Java Basic Level 10 〜While statement 〜
  12. Java Basic Swing〜オブジェクト指向〜
  13. Java Basic Swing Level 2〜オブジェクト指向2〜
  14. サンプル実装〜コンソールゲーム〜
  15. Java Basic インターフェース・抽象クラスの作り方
  16. Java Basic クラスとは〜Step2_1〜
  17. Java Basic JUnit 〜テストスイートの作り方〜

Git関連

  1. Java Git clone in Eclipse 〜サンプルの取得〜
  2. Eclipse Gitリポジトリの取得 GitからソースをPullしよう〜
  3. IntelliJ IDEA GitGitリポジトリからクローン〜

Java Basic Summary from Level1 to 5

イントロダクション

今までやってきた復習を一度まとめて整理します。具体的には以下の項目をまとめてやります。つまり練習問題をやります。

  1. ハローワールド: コンソール表示
  2. 四則計算: 計算の演算子
  3. 文字列クラス: 文字を使う
  4. Boolean: 論理値の使い方
  5. If文の使い方

Introduction

I will organize review witch i have come up with onece. Specifically i will summarrize the following items. That is, I have practice questions.

  1. Hello world: print to console
  2. arthmetic calcuration: using +, -, *, / operators
  3. Boolean: how to use boolean
  4. If statement: how to use If statement

プログラムのサンプル

今回は今まで使用したテクニックを使用して以下のようなプログラムを作成したいと思います。

<解説>

・プログラム引数を使用して、文字が入力された時は、ケース1:入力値を表示、数字が入力された時には、ケース2:入力された値が2つでない時はエラーーを表示、2つの時は二つの値を「足す」「引く」「かける」「割る」の結果を表示するプログラムを作成します。

public static void main(String[] args) {
   // プログラム引数が文字列か確認
     if (args[0].matches("0-9") == false) {
     System.out.println("プログラム引数は" + args[0])
   } else if (args.length == 2) {
      // プログラム引数の数を確認
           // ケース2
           int left = Integer.parseInt(args[0]);
         int right = Integer.parseInt(args[1]);
      System.out.println(left + " + " + right + " = " + left + right);
           System.out.println(left + " - " + right + " = " + left - right);
           System.out.println(left + " * " + right + " = " + left * right);
           System.out.println(left + " / " + right + " = " + left / right);
   } else {
     System.out.println("プログラム引数は2つ設定してください");
   }
}

このプログラムは
1.プログラム引数の数が2個の場合、
2.文字(String)型のデータを「int」型に変換(Integer.parseInt)して、
3.それら2つの値を計算した結果を表示します。
4.プログラム引数が2つではない場合、「プログラム引数は2つ設定してください」という文言をコンソールに出力します。

<解説>

Sample of program

This time, we will try to make the simple program. and I will show sample program. That is using technique of I wrote in blog.

・using program argument. and if argument is string charactor  then print argument to console. if argument is number charactor then print result of calculate in 「+」「-」「*」「/」.

public static void main(String[] args) {
   // Check program argument
   if (args.length == 2) {
           // Case2
           int left = Integer.parseInt(args[0]);
         int right = Integer.parseInt(args[1]);
      System.out.println(left + " + " + right + " = " + left + right);
           System.out.println(left + " - " + right + " = " + left - right);
           System.out.println(left + " * " + right + " = " + left * right);
           System.out.println(left + " / " + right + " = " + left / right);
   } else {
     System.out.println("Please set 2 arguments");
   }
}

練習問題

ヒント:JavaDocを見ましょう。

<問題1>
足し算した結果を、偶数か奇数か判定して奇数だった場合は、「これは奇数です」を、「これは偶数です」をコンソールに出力するプログラムを作成する。

<問題2>
プログラム引数を2つ入力して、1つ目の引数を三角形の底辺、2つ目の引数を三角形の高さとして、三角形の面積を表示するプログラムを作成してください。

<問題3>
問題3と同様に四角形の面積をコンソールに出力するプログラムを作成してください。

<問題4>
プログラム引数に"abcdefghij"を入力して真ん中で2つに分けて以下のようにコンソールに出力するプログラムを作成してください。

1: 前半:XXXXX
2: 後半:XXXXX

※「X」の代わりに出力するものを表示します。

Practice question

<Question1>
Make a program to print that if it's odd number print "it's odd number" and if it's even number print "it's even number".

<Querstion2>
Make a program to calculate area of triangle using 2 program arguments.

<Question3>
Like question2 make a program to calculate area of rectangle.

<Question4>
make a program to print like a sample , using program argument and print splited string.-----------------------------------
1: first harf:XXXXX
2: second harf:XXXXX

※ print "a" to "h" instead of「X」

でわでわ。。。
see you next time.

今回の記事には全く関係ありませんが、Javaでこんなアプリも作れます。JavaFX + Gluon

Eclipse セットアップ

  1. Java Install Eclipse〜開発ツールのインストール〜
  2. TensorFlow C++環境〜EclipseCDTをインストール〜
  3. Setup OpenGL with JavaJOGLを使う準備 for Eclipse
  4. Eclipse Meven 開発手順〜プロジェクトの作成〜
  5. Java OpenCV 環境セットアップ(on Mac)
  6. Eclipse SceneBuilderを追加する
  7. JavaFX SceneBuilder EclipseSceneBuilder連携~

Java Basic一覧

  1. Java Basic Level 1 〜Hello Java〜
  2. Java Basic Level2 〜Arithmetic Calculate〜
  3. Java Basic Level3 〜About String class〜
  4. Java Basic Level 4〜Boolean〜
  5. Java Basic Level 5〜If Statement〜
  6. Java Basic Summary from Level1 to 5
  7. Java Basic Level 6 〜Traning of If statement〜
  8. Java Basic Level8 〜How to use for statement〜
  9. Java Basic Level 8.5 〜Array〜
  10. Java Basic Level 9〜Training of for statement〜
  11. Java Basic Level 10 〜While statement 〜
  12. Java Basic Swing〜オブジェクト指向〜
  13. Java Basic Swing Level 2〜オブジェクト指向2〜
  14. サンプル実装〜コンソールゲーム〜
  15. Java Basic インターフェース・抽象クラスの作り方
  16. Java Basic クラスとは〜Step2_1〜
  17. Java Basic JUnit 〜テストスイートの作り方〜

Git関連

  1. Java Git clone in Eclipse 〜サンプルの取得〜
  2. Eclipse Gitリポジトリの取得 GitからソースをPullしよう〜
  3. IntelliJ IDEA GitGitリポジトリからクローン〜

Java Basic Level 5〜If Statement〜

イントロダクション

再度、復習の意味で以前記載したものを再度やります。
今回はIf文の使い方をやります。
だんだんとやることが複雑になってきます。ロジックを楽しんでください。

Introduction

I will write again what how to use value of boolean. And Tihs time, Write about If statement.
It will guradually become more. enjoy create logic.

ロードマップ

  1. Booleanの扱い方
  2. If文の使い方 今回
  3. If文の使い方〜応用編〜
  4. ループ処理〜For文〜
  5. ループ処理〜For文の応用〜
  6. ループ処理〜While文〜
  7. ループ処理〜While文の応用〜
  8. ループ処理〜Do While文〜
  9. ループ処理〜Do While文の応用〜
  10. 演算子の整理
  11. 演算子の応用
  12. まとめ

Road Map

  1. How to use Boolean
  2. How to use if statement This time
  3. Training of  if statement
  4. How to use loop statement 〜While〜
  5. Training of Loop〜While〜
  6. How to use loop statement 〜While〜
  7. Training of Loop〜While〜
  8. How to use loop statement 〜Do While〜
  9. Training of Loop〜Do While〜
  10. Summary of operator
  11. Training of operator
  12. Summary

IF文の使い方

シンプルに以下のような感じで書きます。

if (論理値1) {
   // 処理1
} else if (論理値2) {
   // 処理2
} else {
   // 処理3
}

<解説>

上のように条件分岐を行います。 論理値は「True」「False」が入ります。
サンプルコードです。

int num = 1;
if (num == 1) {
   System.out.println("numの値は" + num + "です");
} else if (num == 2) {
      System.out.println("numの値は" + num + "です");
} else {
   System.out.println("numは1でも2でもありません");
}

変数「num」には1が入っていて処理の結果としては「numは1です」と表示します。
「num == 1」-> TRUE
「num == 2」-> FALSE

次は、上のコードを下のように変更します。

public static void main(String[] args) {
  int num = Integer.parseInt(args[0]);
  if (num == 1) {
    System.out.println("numの値は" + num + "です");
  } else if (num == 2) {
       System.out.println("numの値は" + num + "です");
  } else {
    System.out.println("numは1でも2でもありません");
  }
}

プログラム引数を変更してやるだけで表示する結果を変更することができます。

プログラム引数とはメインメソッドの「String[] args」の部分です。これに値をセットするのには、以下のようにやります。※下の動画はプログラム引数の説明もしています。

  1. IDEでプログラム引数を渡す。
  2. コマンドで実行するときにプログラム引数を渡す。 -> java XXX プログラム引数1 プログラム引数2 ...

<プログラム引数を渡す>

How to use If statement

Write a code as simply. like this.

if (<result of logical operation1>) {
   // processing1
} else if (<result of logical operation2>) {
   // processing2
} else {
   // processing3
}

perform conditional branching as above. the value of < ... > is  "True" or "False".
Is shown blow.

int num = 1;
if (num == 1) {
   System.out.println("num is " + num);
} else if (num == 2) {
      System.out.println("num is" + num);
} else {
   System.out.println("num is not 1 and 2");
}

Valiable "num" is in1 and result of processing display "num is 1". next i try change this code like this.

public static void main(String[] args) {
  int num = Integer.parseInt(args[0]);
  if (num == 1) {
     System.out.println("num is " + num);
  } else if (num == 2) {
        System.out.println("num is" + num);
  } else {
     System.out.println("num is not 1 and 2");
  }
}

just change program argument, we can change result of processing.

問題の実装方法

問題1

上のプログラムのプログラム引数に"3"を渡してelse文の部分を表示させてください。
change upper program and use program argument of 3 show "num is not 1 and 2"

問題2

上のプログラムの「int num = ...」を「String str = 」に変更してプログラムを動くようにしてください。

でわでわ、良い日を。。。

Change A part of "int num = ..." to "String str = ..." and fix the program.

See you next time. and have a good day.

今回の記事には全く関係ありませんが、Javaでこんなアプリも作れます。JavaFX + Gluon


Java Basic Level 4〜Boolean〜

イントロダクション

再度、復習の意味で以前記載したものをやります。
今回はBooleanの使い方をやります。前回までは、Javaを初めて触る人向けに記載しました。今回からは、少し触ったことがある人向けに記載します。
ちなみに、前回記載したものは、こちら

解説

Introduction

I will write again what how to use value of boolean. And Tihs time, Write about Boolean.

ロードマップ

  1. Booleanの扱い方 今回
  2. If文の使い方
  3. If文の使い方〜応用編〜
  4. ループ処理〜For文〜
  5. ループ処理〜For文の応用〜
  6. ループ処理〜While文〜
  7. ループ処理〜While文の応用〜
  8. ループ処理〜Do While文〜
  9. ループ処理〜Do While文の応用〜
  10. 演算子の整理
  11. 演算子の応用
  12. まとめ

Road Map

  1. How to use Boolean This time
  2. How to use if statement
  3. Training of  if statement
  4. How to use loop statement 〜While〜
  5. Training of Loop〜While〜
  6. How to use loop statement 〜While〜
  7. Training of Loop〜While〜
  8. How to use loop statement 〜Do While〜
  9. Training of Loop〜Do While〜
  10. Summary of operator
  11. Training of operator
  12. Summary

Booleanの使い方

Booleanとは「True(真)」と「False(偽)」の値を入れるためのデータ型です。

boolean hantei = 1 == 1; // True
hantei = 1== 2 // False
String moji = "abc";
hantei = "abc".equals(moji); // True
hantei = "abb".equals(moji); // False

簡単な使い方は上記のような使い方です。実際には「if」文と合わせて以下のように記述します。

public static void main(String[] args) {
   if ("test".equals(args[0]) {
      System.out.println("プログラム引数は" + args[0] + "です");
   }
}

上記はプログラム引数(プログラムを起動するときに渡す引数です)

プログラムを実行するときはコマンドプロンプト下のようなコマンドを叩きます。

コマンドプロンプトの扱い方に関しては下の動画を参照ください。

まずはコンパイル

javac Hello.java

そして実行

java Hello

MACでの実行になりますが、Windowsでも同じコマンドです。

Windowsでの実行はこちらです。

How to use Boolean

Boolean is Data type of variable whitch you can set true and false. This is sample of use Boolean.

boolean hantei = 1 == 1; // True
hantei = 1== 2 // False
String moji = "abc";
hantei = "abc".equals(moji); // True
hantei = "abb".equals(moji); // False

This is a example of simple case. actually we ofen use in if statement

public static void main(String[] args) {
   if ("test".equals(args[0]) {
      System.out.println("Program argument is " + args[0]);
   }
}

That program print to console a program argument.

今回は問題がありません。次回からは問題を作ります。
Javaを楽しんでください!

There is no questions. Next time, I will make questions.
Have a gooday and enjoy java. see you next time!


IF文とBoolean

IF文だけではありませんが、論理演算という処理があります。これは返却値にBooleanを返す処理ですが、基本的に「条件分岐」を行う処理が多いです。よく見かけるコードでは下のようなものがあります。

String str = "";
if (isEmpty(str)) {
  System.out.println("空です。");
} else {
  System.out.println("「" + str + "」です。");
}

isEmpty()は、引数の文字列が空文字、もしくはNULLの時にTRUEを返すメソッドです。具体的には下のようなコードです。

public boolean isEmpty(String str) {
   boolean isEmpty = false;
   isEmpty = str == null || "".equals(str);
   return isEmpty;
}

つまり、メソッドの返り値をIF文のかっこの中に書いた場合は、メソッドの返り値でTRUE、FALSEが渡されるのでIF文の中に処理が入るかどうか決まる。ということです。

上のコードを分解する

上のコードを分解します。つまり、一つずつ変数に結果を取り出して、デバック実行したときに値を確認できる形のコードに直します。

String str = "";
boolean isEmpty = isEmpty(str);
if (isEmpty) {
  System.out.println("空です。");
} else {
  System.out.println("「" + str + "」です。");
}

大したことをしていませんが、こんな感じです。メソッドを使用しない場合は、下のように書いてもよいです。
「isEmpty()」を「str == null || "".equals(str)」に書き換えた形です。色々な場所で使えそうな処理はメソッドという形で作っておけば
何度も使うことができます。1回しか使わないのであれば「str == null || "".equals(str)」を書いてもよいと思いますが、「isEmpty()」は汎用性のある処理なので、メソッドで使った方が良いと思います。

String str = "";
if (str == null || "".equals(str)) {
  System.out.println("空です。");
} else {
  System.out.println("「" + str + "」です。");
}


今回の記事には全く関係ありませんが、Javaでこんなアプリも作れます。そして余計な音が入っています。JavaFX + Gluon

でわでわ。。。