【Java】「Javaの実践」簡単速習‼【①基礎構文】

こんにちはヤク学長です。
データサイエンティスト兼ファーマシストで、アルゴリズムやBI開発を行っています。

本記事の目的は、「Javaの基本操作を知る」ことを目的としています。

【本記事のもくじ】

まず、「Java」に真剣に取り組むための概要を解説します。
下記の方法で、簡単に概要を抑えることができます。

  • 1.JavaとJavaScriptの違い
  • 2.Javaの実践

それでは、上から順番に見ていきます。
なお、本上記の方法を順番に抑えれば成果が出ます。

記事の内容は「転載 & 引用OK」問題ありません。

1.JavaとJavaScriptの違い

JavaとJavaScriptは、両方ともプログラミング言語であり、名前の類似点がありますが、異なる言語です。

主な違いは次の通りです。

  • 用途: Javaは、主にバックエンド開発、Androidアプリ開発、大規模なWebアプリケーションなどのような、高度なタスクを実行するためのプログラミング言語です。一方、JavaScriptは、主にWebページの動的なコンテンツを実装するためのクライアントサイドのスクリプト言語です。

  • 実行環境: Javaは、Java仮想マシン(JVM)と呼ばれる環境で実行されます。一方、JavaScriptは、Webブラウザ内で実行されます。

  • 文法: Javaは、静的型付けのプログラミング言語であり、C++に似た文法を持ちます。一方、JavaScriptは、動的型付けのプログラミング言語であり、C言語やJavaに似た文法を持ちますが、独自の機能も多数持っています。

  • フレームワーク: Javaは、多数のフレームワークが提供されており、Spring FrameworkやHibernateなどが有名です。一方、JavaScriptは、ReactやAngularなどのフレームワークが有名です。

以上のように、JavaとJavaScriptは、異なる用途、実行環境、文法、フレームワークを持っています。

Javaを動かしてみよう

Javaを動かすには、以下の手順を実行します。

  • Javaのインストール: Javaを実行するには、まずJava Development Kit(JDK)をインストールする必要があります。JDKは、Javaプログラムをコンパイルして実行するための開発ツールキットです。

  • Javaのコンパイル: Javaプログラムをコンパイルして実行するには、Javaコンパイラを使用してJavaファイルをコンパイルします。コンパイルされたJavaファイルには、拡張子が .class になります。

  • Javaの実行: Javaファイルを実行するには、Java仮想マシン(JVM)を使用します。以下の手順に従って、Javaを実行することができます。

  • Javaファイルをコンパイルして .class ファイルを生成します。

  • コマンドラインから、以下のようにコマンドを入力してJavaを実行します。

java HelloWorld

ここでは、HelloWorld という名前のJavaファイルを実行するためのコマンドを入力しています。このコマンドを実行すると、Javaプログラムが実行され、標準出力にメッセージが表示されます。

以上の手順を実行することで、Javaプログラムを実行することができます。ただし、Javaの開発には、IDE(Integrated Development Environment)などの開発ツールを使用することが一般的で、より効率的に開発することができます。

2.Javaの実践

文字を表示してみよう

Main.javaというファイルのSystem.out.println()の()の中に文字を書くと、コンソールという画面にその文字が表示されます。

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

このプログラムを実行すると、コンソールに「Hello, World!」という文字列が表示されます。System.out.println()は、文字列を出力するためのJavaの標準的なメソッドで、引数に渡された文字列を改行付きで出力します。

数値

数値は、Javaにおいては、整数型と浮動小数点型の2つのデータ型で表現されます。整数型は、byteshortintlongの4つの型があり、それぞれの型によって表現できる範囲が異なります。一方、浮動小数点型は、floatdoubleの2つの型があり、より高い精度で数値を扱うことができます。

以下は、数値を使用したJavaのプログラムの例です。

public class Main {
  public static void main(String[] args) {
    int a = 10;
    int b = 5;
    int sum = a + b;
    double average = (double) sum / 2;
    System.out.println("Sum: " + sum);
    System.out.println("Average: " + average);
  }
}

このプログラムを実行すると、コンソールに「Sum: 15」と「Average: 7.5」という数値が表示されます。

上記の例では、整数型の変数 ab にそれぞれ10と5を代入しています。そして、これらの変数を使用して、2つの整数の和を計算し、変数 sum に代入しています。また、この計算結果を使用して、2つの数値の平均を計算し、変数 average に代入しています。このプログラムでは、整数型と浮動小数点型を混在して計算を行っているため、平均の計算時に double 型にキャストしています。最後に、System.out.println() メソッドを使用して、計算結果を出力しています。

Javaでは、数値を扱うために多くの演算子やメソッドが提供されており、数値の計算や変換などの操作ができます。

その他の計算

掛け算は「*」(アスタリスク)、割り算は「/」(スラッシュ)、余りの計算は「%」(パーセント)を使用します。

以下は、これらの演算子を使用したJavaのプログラムの例です。

public class Main {
public static void main(String[] args) {
int a = 10;
int b = 3;
int product = a * b;
int quotient = a / b;
int remainder = a % b;
System.out.println("Product: " + product);
System.out.println("Quotient: " + quotient);
System.out.println("Remainder: " + remainder);
}
}

このプログラムを実行すると、コンソールに「Product: 30」「Quotient: 3」「Remainder: 1」という数値が表示されます。上記の例では、整数型の変数 ab にそれぞれ10と3を代入しています。そして、これらの変数を使用して、2つの整数の積を計算し、変数 product に代入しています。また、整数の割り算と余りの計算を行い、それぞれ変数 quotientremainder に代入しています。最後に、System.out.println() メソッドを使用して、計算結果を出力しています。

これらの演算子は、数値の計算に限らず、文字列の繰り返しや、配列の要素の操作など、様々な場面で使用されます。

文字列の連結

Javaでは、文字列を結合するために + 演算子を使用します。以下は、文字列の結合を使用したJavaのプログラムの例です。

public class Main {
public static void main(String[] args) {
String firstName = "John";
String lastName = "Doe";
String fullName = firstName + " " + lastName;
System.out.println("Full Name: " + fullName);
}
}

このプログラムを実行すると、コンソールに「Full Name: John Doe」という文字列が表示されます。上記の例では、firstNamelastName という2つの文字列を使用して、フルネームを結合しています。そして、System.out.println() メソッドを使用して、フルネームを出力しています。

また、複数の文字列を結合する場合は、+ 演算子を連続して使用することもできます。以下は、複数の文字列を結合する例です。

public class Main {
public static void main(String[] args) {
String firstName = "John";
String lastName = "Doe";
String fullName = firstName + " " + lastName;
String jobTitle = "Software Engineer";
String message = "My name is " + fullName + " and I work as a " + jobTitle + ".";
System.out.println(message);
}
}

このプログラムを実行すると、コンソールに「My name is John Doe and I work as a Software Engineer.」という文字列が表示されます。上記の例では、フルネームと職種を使用して、メッセージを結合しています。そして、System.out.println() メソッドを使用して、メッセージを出力しています。

データ型

Javaには、以下のようなデータ型があります。

  • 整数型:byteshortintlong
  • 浮動小数点型:floatdouble
  • 文字型:char
  • 真偽型:boolean
  • 参照型:String、配列、クラス、インターフェースなど

整数型は、整数値を表現するためのデータ型で、それぞれの型によって表現できる範囲が異なります。浮動小数点型は、小数点を含む数値を表現するためのデータ型で、float は単精度浮動小数点数、double は倍精度浮動小数点数を表現します。文字型は、1つの文字を表現するためのデータ型で、char という型名で宣言されます。真偽型は、真偽値を表現するためのデータ型で、boolean という型名で宣言されます。

また、Javaには参照型というものもあります。参照型は、オブジェクトを表現するためのデータ型で、String クラスや、配列、クラス、インターフェースなどがこれにあたります。参照型の変数には、オブジェクトへの参照が格納され、オブジェクトそのものではありません。

データ型によって使用できるメソッドや演算子が異なるため、適切なデータ型を選択することが重要です。

変数

Javaにおいて、変数はデータを一時的に格納するための領域であり、それぞれにデータ型が指定されます。変数を使用することで、同じ値を繰り返し使用することができるため、コードを簡潔にすることができます。

変数を宣言するには、以下のように データ型 変数名; の形式で宣言します。

int age;

上記の例では、int 型の age という変数を宣言しています。変数は宣言するだけでは初期値が設定されておらず、使用する前に初期化する必要があります。

変数に初期値を設定する場合は、以下のように 変数名 = 値; の形式で代入します。

int age;
age = 20;

また、変数の宣言と初期化を同時に行うこともできます。

int age = 20;

変数には、ある値を代入することで上書きすることができます。例えば、以下のように = を使用して変数に新しい値を代入できます。

int age = 20;
age = 30;

変数には、数値や文字列などの基本的なデータ型だけでなく、オブジェクトや配列などの参照型のデータも格納することができます。ただし、参照型の変数には、オブジェクト自体ではなく、オブジェクトへの参照が格納されます。

変数の初期化

Javaでは、変数を宣言しただけでは初期値が設定されず、明示的に初期化しなければなりません。変数を使用する前に初期化しないと、コンパイルエラーが発生します。

変数を初期化する方法は、変数の宣言と同時に初期化する方法と、後から値を代入して初期化する方法の2つがあります。

// 変数の宣言と同時に初期化する
int x = 10;

// 後から値を代入して初期化する
int y;
y = 20;

変数を宣言する際に初期化しない場合、変数には初期値が設定されません。そのため、使用する前に必ず初期化しなければなりません。例えば、以下のように初期化されていない変数を使用すると、コンパイルエラーが発生します。

int x;
System.out.println(x); // エラー!xが初期化されていない

変数の初期化には、実行時に決まる値(例:乱数、現在時刻など)や、計算結果を代入する場合など、動的に初期値を設定することもできます。ただし、変数に初期値を設定しない場合に比べて、コードの読みやすさや保守性が低下する可能性があるため、できるだけ初期値を設定することが推奨されます。

int型変数の計算

int型の変数には、四則演算などの数値計算を行うことができます。以下は、int型の変数を使用した計算の例です。

int x = 10;
int y = 5;

int sum = x + y; // 和を計算する
int difference = x - y; // 差を計算する
int product = x * y; // 積を計算する
int quotient = x / y; // 商を計算する
int remainder = x % y; // 剰余を計算する

System.out.println("Sum: " + sum);
System.out.println("Difference: " + difference);
System.out.println("Product: " + product);
System.out.println("Quotient: " + quotient);
System.out.println("Remainder: " + remainder);

上記の例では、xy という2つのint型の変数を宣言し、それらを使用して和・差・積・商・剰余を計算しています。そして、それぞれの計算結果を sumdifferenceproductquotientremainder という変数に代入し、System.out.println() メソッドを使用して出力しています。

また、int型の変数は、数値以外の値を代入することはできません。数値以外の値を代入する場合は、他のデータ型を使用する必要があります。

String型変数の連結

Javaでは、文字列を連結するには + 演算子を使用します。以下は、String型の変数を使用した文字列の連結の例です。

String firstName = "John";
String lastName = "Doe";

String fullName = firstName + " " + lastName;
System.out.println("Full Name: " + fullName);

上記の例では、firstNamelastName という2つの文字列を使用して、フルネームを結合しています。そして、System.out.println() メソッドを使用して、フルネームを出力しています。

また、複数の文字列を連結する場合は、+ 演算子を連続して使用することもできます。以下は、複数の文字列を連結する例です。

String firstName = "John";
String lastName = "Doe";
String jobTitle = "Software Engineer";

String message = "My name is " + firstName + " " + lastName + " and I work as a " + jobTitle + ".";
System.out.println(message);

上記の例では、フルネームと職種を使用して、メッセージを連結しています。そして、System.out.println() メソッドを使用して、メッセージを出力しています。

変数の更新

Javaでは、既に宣言されている変数に新しい値を代入することで、変数の値を更新することができます。以下は、変数の値を更新する例です。
int x = 10; // xに10を代入する
System.out.println("x: " + x); // xの値を出力する

x = 20; // xに新しい値20を代入する
System.out.println("x: " + x); // 更新されたxの値を出力する

上記の例では、まず int 型の変数 x に初期値として 10 を代入し、その後、x に新しい値として 20 を代入しています。変数を更新することで、変数の値を繰り返し使用することができるため、コードを簡潔にすることができます。

なお、変数の型やスコープ(有効範囲)を変更することはできません。変数の型やスコープを変更する場合は、新しい変数を宣言して、元の変数から値をコピーする必要があります。

自己代入

Javaにおいて、変数に自分自身を代入することを自己代入と呼びます。自己代入はプログラム上の誤りであり、意図せずに予期しない動作を引き起こすことがあります。

例えば、以下のように自己代入を行った場合、変数の値が正しく更新されない可能性があります。

int x = 10;
x = x + x; // 自己代入を行う

上記の例では、変数 x10 を代入し、xx + x の値を代入しています。しかし、x の値が 10 のままであるため、実際に代入される値は 20 ではなく 10 になります。正しく値を更新するには、以下のように一時変数を使用する必要があります。

int x = 10;
int temp = x + x;
x = temp;

上記の例では、まず変数 tempx + x の値を代入し、その後、temp の値を変数 x に代入しています。

自己代入の 省略した書き方

Javaにおいて、変数に自分自身を代入することを自己代入と呼びます。自己代入はプログラム上の誤りであり、意図せずに予期しない動作を引き起こすことがあります。

Javaには自己代入を簡潔に記述するための省略記法があります。以下は、自己代入の省略記法の例です。

int x = 10;
x += x; // 自己代入の省略記法

上記の例では、x += x のように、+= 演算子を使用して自己代入を行っています。+= 演算子は、左辺の変数に右辺の値を加算した結果を、左辺の変数に代入する演算子です。この場合、x += xx = x + x と同じ意味になります。

ただし、自己代入の省略記法は、プログラムの可読性を損ねる場合があるため、適切な場面で使用するようにしましょう。また、自己代入が誤って使用される可能性がある場合は、省略記法を使用せず、完全な記述をすることが望ましいです。

なぜ変数を使うのか

プログラミングにおいて、変数は非常に重要な役割を果たします。以下に、変数を使用する理由をいくつか説明します。

  • データを保持するため:変数は、プログラムが必要とするデータを保持するために使用されます。変数を使用することで、プログラムが必要な時に必要なデータにアクセスできるようになります。

  • プログラムの状態を管理するため:変数は、プログラムの状態を管理するために使用されます。プログラムの実行中に変数の値を変更することで、プログラムの動作を制御することができます。

  • コードの再利用性を向上するため:変数を使用することで、同じ値を複数の場所で使用できるようになり、コードの再利用性が向上します。変数を使用することで、同じ処理を複数回書く必要がなくなり、コードの量が削減されます。

  • コードの可読性を向上するため:変数を使用することで、プログラムの意図を明確にすることができます。変数名を適切に付けることで、プログラムの処理内容が明確になり、コードの可読性が向上します。

  • プログラムの保守性を向上するため:変数を使用することで、プログラムの保守性が向上します。変数を使用することで、プログラムの動作を制御することができるため、プログラムの修正や改善が容易になります。

以上のように、変数はプログラミングにおいて非常に重要な役割を果たしており、コードの可読性や保守性を向上させるために不可欠な要素です。

double型(小数)

Javaにおいて、double 型は浮動小数点数を表現するためのデータ型です。double 型の変数は、整数と小数の両方を格納することができます。

以下は、double 型の変数を宣言し、初期値を設定する例です。

double price = 12.34;
System.out.println("Price: " + price);

上記の例では、double 型の変数 price を宣言し、初期値として 12.34 を設定しています。そして、System.out.println() メソッドを使用して、変数 price の値を出力しています。

double 型の変数は、整数と小数の両方を格納できるため、計算に使用することができます。例えば、以下は double 型の変数を使用して、円周率の計算を行う例です。

double pi = 3.14;
double radius = 5.0;
double circumference = 2 * pi * radius;
System.out.println("Circumference: " + circumference);

上記の例では、double 型の変数 pi に円周率の値を設定し、double 型の変数 radius に半径の値を設定しています。そして、double 型の変数 circumference に円周の値を計算しています。最後に、System.out.println() メソッドを使用して、円周の値を出力しています。

型変換について

Javaにおいて、異なるデータ型の間で値を変換することを型変換と呼びます。Javaには、以下の2種類の型変換があります。

  • 自動型変換(暗黙的な型変換):Javaでは、値の範囲が小さいデータ型から大きいデータ型への自動型変換を行うことができます。これは、値の範囲が小さいデータ型を値の範囲が大きいデータ型に代入する場合に行われます。以下は、int 型の変数を double 型の変数に代入する例です。
int num = 10;
double dnum = num;
System.out.println("dnum: " + dnum);

上記の例では、int 型の変数 num10 を代入し、double 型の変数 dnumnum を代入しています。int 型の値 10double 型に自動的に変換され、dnum の値に代入されます。

  • 強制型変換(明示的な型変換):Javaでは、値の範囲が大きいデータ型から小さいデータ型への強制型変換を行うことができます。これは、値の範囲が大きいデータ型を値の範囲が小さいデータ型に代入する場合に行われます。以下は、double 型の変数を int 型の変数に代入する例です。
double dnum = 10.5;
int num = (int) dnum;
System.out.println("num: " + num);

上記の例では、double 型の変数 dnum10.5 を代入し、int 型の変数 numdnum を代入しています。しかし、int 型は小数点以下の値を保持できないため、dnum の値を int 型に直接代入することはできません。そのため、強制的に dnum の値を int 型に変換する必要があります。強制的に型変換する場合には、変換したい型を括弧で囲み、変数の前に置く必要があります。

以上のように、Javaでは自動型変換と強制型変換の2種類の型変換があり、それぞれの場合に適切な方法を選択する必要があります。

強制的型変換

Javaにおいて、強制的にデータ型を変換することを強制的型変換(キャスト)と呼びます。強制的型変換は、データ型の値の範囲が小さい場合や、異なるデータ型の値を比較する場合など、必要に応じて使用することができます。

以下は、double 型から int 型への強制的型変換の例です。

double dnum = 3.14159;
int inum = (int) dnum;
System.out.println("dnum: " + dnum + ", inum: " + inum);

上記の例では、double 型の変数 dnum3.14159 を代入し、int 型の変数 inumdnum を代入するために強制的な型変換を行っています。(int) というキャスト演算子を使用して、dnumint 型に変換しています。dnum の値は 3.14159 ですが、inum には 3 が代入されます。

強制的型変換を使用する場合には、変換元のデータ型と変換先のデータ型が互換性がない場合には、実行時エラーが発生する可能性があるため、注意が必要です。また、変換先のデータ型に収まりきらないような値を変換する場合には、変換結果が予想と異なる場合があるため、注意が必要です。


というわけで、今回は以上です。大変大変お疲れ様でした。
引き続きで、徐々に発信していきます。

コメントや感想を受け付けています。ちょっとした感想でもいいので嬉しいです。

それでは、以上です。

最新情報をチェックしよう!