Javaの基本構文
Javaプログラムは、互いのメソッドを呼び出すことで協調動作するオブジェクトの集合体と考えることができる。 以下は、クラス、オブジェクト、メソッド、インスタンス変数の概念の簡単な紹介です。
オブジェクト: オブジェクトは、状態や振る舞いを持つクラスのインスタンスです。 例えば、犬は「色」「名前」「犬種」などの状態と、「尻尾を振る」「吠える」「食べる」などの行動を持つオブジェクトである。
クラス:クラスは、オブジェクトのクラスの振る舞いと状態を記述するテンプレートである。
メソッド:メソッドは振る舞いであり、クラスは多くのメソッドを持つことができる。 論理的な操作やデータの変更など、すべての動作はメソッドの中で行われる。
インスタンス変数:各オブジェクトは固有のインスタンス変数を持ち、オブジェクトの状態はこれらのインスタンス変数の値によって決定される。
初めてのJavaプログラム
ここでは、文字列Hello Worldを出力する簡単なJavaプログラムを紹介します。
public class HelloWorld {
/* 初めてのJavaプログラム
* Hello World を出力する
*/
public static void main(String[] args) {
System.out.println("Hello World"); // Hello World を出力する
}
}
出力結果:
以下は、このプログラムを保存、コンパイル、実行する方法をステップ・バイ・ステップで説明したものです:
- コード・エディター(前に記事で説明したさくらエディターまたは別のエディター)を開き、上記のコードを追加する;
- ファイル名をHelloWorld.javaとして保存する;
- cmdコマンドプロンプトを開き、ファイルを保存した場所(C:¥DearShiTou)に移動する。
- コマンドプロンプトに「javac HelloWorld.java」と入力し、Enterキーを押してコードをコンパイルする。 コードにエラーがなければ、cmdコマンド・プロンプトは次の行に進みます(環境変数が設定されていると仮定)。
- 「java HelloWorld」と入力し、Enterキーを押してプログラムを実行します。
- Hello Worldが表示されます。
基本構文
Javaプログラムを書く際には、以下の点に注意する必要がある:
- 大文字と小文字を区別する:Javaは大文字と小文字を区別します。
- クラス名:すべてのクラスでは、クラス名の最初の文字を大文字にします。 クラス名が複数の単語で構成されている場合は、MyFirstJavaClassのように、各単語の最初の文字を大文字にします。
- メソッド名: すべてのメソッド名は小文字で始めます。 メソッド名が複数の単語で構成されている場合は、それに続く各単語の最初の文字を大文字にします。
- ソース・ファイル名: ソース・ファイル名は、クラス名と同じでなければなりません。 ファイルを保存するときは、クラス名をファイル名として使用し(Javaでは大文字と小文字が区別されることを覚えておいてください)、ファイル名の末尾には.javaを付ける必要があります(ファイル名がクラス名と同じでない場合、コンパイルエラーになります)。
- メイン・メソッドの入力: すべてのJavaプログラムは、public static void main(String[] args)メソッドによって開始されます。
Javaの識別子
Javaのすべてのコンポーネントには名前が必要です。 クラス名、変数名、メソッド名はすべて識別子と呼ばれます。
Javaの識別子にはいくつか注意すべき点があります:
- すべての識別子は、アルファベット(A-Zまたはa-z)、ドル記号($)、アンダーライン(_)で始まる必要があります。 最初の文字の後には、文字(A-Zまたはa-z)、ドル記号($)、アンダーライン(_)、数字を自由に組み合わせることができます。
- キーワードを識別子として使用することはできません。
- 識別子は大文字と小文字を区別します。
- 正当な識別子の例: age, $salary, _value, __1_value
- 不正な識別子の例: 123abc, -salary
Java修飾子
他の言語と同様に、Javaでも修飾子を使ってクラスのメソッドやプロパティを変更することができます。 修飾子には大きく分けて2種類ある:
アクセス制御修飾子: default、public、protected、private
非アクセス制御修飾子:final、abstract、static、synchronized
Javaの修飾子については、後の章で詳しく説明します。
Javaの変数
Javaの変数の主な種類は以下のとおりです。
- ローカル変数
- クラス変数(静的変数)
- メンバ変数(非静的変数)
Javaの配列
配列はヒープ上に格納されるオブジェクトで、同じ型の変数を複数保持することができます。 後の章では、配列の宣言、構築、初期化の方法を学びます。
Javaの列挙
Java 5.0では、変数を定義済みの値に制限する列挙が導入された。 列挙型を使うことで、コードのバグを減らすことができる。
例えば、ジュース・ショップのために、ジュースをスモール、ミディアム、ラージカップに制限するプログラムを設計してみよう。 つまり、この3つ以外のサイズのジュースを注文することはできない。
実例:
class FreshJuice {
enum FreshJuiceSize{ SMALL, MEDIUM , LARGE }
FreshJuiceSize size;
}
public class FreshJuiceTest {
public static void main(String[] args){
FreshJuice juice = new FreshJuice();
juice.size = FreshJuice.FreshJuiceSize.MEDIUM ;
}
}
注:列挙は単独で宣言することも、クラス内部で宣言することもできます。 メソッド、変数、コンストラクタも列挙の中で定義することができます。
Java予約語(キーワード)
以下はJava予約語のリストである。 これらの予約語は、定数、変数、識別子名には使用できません。
種類 | キーワード | 説明 |
---|---|---|
アクセス制御 | private | アクセス修飾子。 |
protected | アクセス修飾子。 | |
public | アクセス修飾子。 | |
default | 制御文(switch文)で使用。インターフェースのメソッドで使用。 | |
クラス、メソッド、変数の修飾子 | abstract | 修飾子。抽象クラスと抽象メソッドで使用。 |
class | クラスで使用。 | |
extends | 親クラスを継承する。 | |
final | クラスの継承不可、メソッドのオーバーライド不可、定数。 | |
implements | インターフェースを実装する。 | |
interface | インターフェース。 | |
native | 修飾子。Java以外のプログラム言語を使用。 | |
new | クラスからインスタンスを生成する。 | |
static | 修飾子。 | |
strictfp | 修飾子。 | |
synchronized | 修飾子。排他制御。 | |
transient | 修飾子。シリアライズの対象から除外する。 | |
volatile | 修飾子。フィールドの値をキャッシュしない。 | |
プログラム制御文 | break | 制御文で使用。 |
case | 制御文(switch文)で使用。 | |
continue | 制御文で使用。 | |
do | 制御文(do-while文)で使用。 | |
else | 否则 | |
for | 制御文(for文)で使用。 | |
if | 制御文(if文)で使用。 | |
instanceof | 指定したクラス・インターフェイスか判断できます | |
return | メソッドの終了、戻り値を返す。 | |
switch | 制御文(switch文)で使用。 | |
while | 制御文(do-while文)で使用。 | |
例外処理 | assert | アサーション。引数-eaで実行しfalse時は例外になる。 |
catch | 例外処理で使用。例外をキャッチ | |
finally | 例外処理で使用。 | |
throw | 例外をスローする(投げる)。 | |
throws | 例外処理で使用。 | |
try | 例外処理で使用。 | |
パッケージ | import | クラス関連。 |
package | パッケージを指定する。 | |
基本データ型 | boolean | 真偽(trur/false)。 |
byte | -128~127の整数。 | |
char | 文字型 | |
double | 浮動小数点。 | |
float | 浮動小数点。 | |
int | 整数。 | |
long | 長い整数。 | |
short | 短い整数。 | |
変数参照 | super | 親のインスタンスを指す。 |
this | 現在のインスタンスを指す。 | |
void | メソッドの戻り値なし。 | |
特別 | goto | 使用されていない。使わない方がいい |
const | 使用されていない。使わない方がいい |
予約語( Keywords )については次のページに一覧が掲載されています( JDK 15 のドキュメント)。
JAVAの公式サイト:3.9. Keywords
Javaコメント
C/C++と同様に、Javaは1行コメントと複数行コメントの両方をサポートしている。 コメント中の文字は、Javaコンパイラによって無視される。
public class HelloWorld {
/* 初めてのJavaプログラム
* Hello World を出力する
* これが複数行コメントの例です
*/
public static void main(String[] args){
// これが1行コメントの例です
/* これも1行コメントの例です */
System.out.println("Hello World");
}
}
このように 「/* XXX */」 かもしくは 「//」 を使えば、これがコメントアウトされたので、出力されなくなったことがわかります。
空白行やコメント行は、Javaコンパイラによって無視される。
継承
Javaでは、クラスを他のクラスから継承することができる。 クラスを作成するときに、必要なプロパティやメソッドを持つクラスがすでに存在する場合は、新しく作成するクラスをそのクラスから継承することができます。
継承を使えば、コードを書き直すことなく、すでに存在するクラスのメソッドやプロパティを再利用することができます。 継承されたクラスはスーパークラスと呼ばれ、派生したクラスはサブクラスと呼ばれます。
インターフェース
Javaでは、インターフェースはオブジェクト同士が通信するためのプロトコルとして理解できる。 インターフェイスは継承において重要な役割を果たす。
インターフェイスは、派生クラスが使用するメソッドだけを定義しますが、 メソッドの実装はすべて派生クラスに依存します。
以上はJAVAのプログラムを書くときに、主に使うことです
次の記事では、Javaプログラミングにおけるクラスとオブジェクトについて紹介します。 その後、Javaにおけるクラスとオブジェクトをより明確に理解できるようになります。
コメントを残す