Javaの基本構文

Javaプログラムは、一連のオブジェクトの集合と考えることができ、これらのオブジェクトは、互いのメソッドを呼び出すことによって協同実行します。次には、クラス、オブジェクト、メソッド、およびインスタンス変数の概念を簡単に説明します。

  • オブジェクト:オブジェクトは、状態と動作を持つクラスのインスタンスです。例えば、犬はオブジェクトであり、そのステータスには、色、名前、犬種があり、動作にはしっぽを振る、吠える、食べるなどが含まれます。
  • クラス:クラスは、オブジェクトのクラスの動作と状態を説明するテンプレートです。
  • メソッド:メソッドは動作であり、クラスには多くのメソッドを含めることができます。 論理演算、データ変更、およびすべての動作は、メソッドで完了します。
  • インスタンス変数:各オブジェクトには一意のインスタンス変数があり、オブジェクトの状態はこれらのインスタンス変数の値によって決定されます。

最初のJavaプログラム

次には簡単なJavaプログラムをご覧ください。このプログラムは文字列HelloWorldを出力します。

実例

public class HelloWorld {
    /* 最初のJavaプログラム
     * 文字列HelloWorldを出力します
     */
    public static void main(String[] args) {
        System.out.println("Hello World"); // Hello World を出力します
    }
}

次には、このプログラムについて保存方法、コンパイル、および実行方法を段階的に説明します。

  • コードエディタを開き、上記のコードを追加します。
  • ファイル名を次のように保存します:HelloWorld.java;
  • cmdコマンドウィンドウを開き、ターゲットファイルの場所に入り、仮にC:\であると想定します。
  • コマンドラインウィンドウにjavacHelloWorld.javaと入力し、Enterキーを押してコードをコンパイルします。 コードにエラーがない場合、cmdコマンドプロンプトは次の行に入ります。(環境変数が設定されていると仮定します)
  • もう一度javaHelloWorldと入力し、Enterキーを押して、プログラムを実行できます。

画面にはHelloWorldが表示されます。

$ javac HelloWorld.java
$ java HelloWorld 
Hello World

エンコーディングの問題が発生した場合、-encodingオプションを使用して、utf-8をコンパイルするように設定できます。

javac -encoding UTF-8 HelloWorld.java 
java HelloWorld 

基本的な構文

Javaプログラムを作成する時、次の点に注意する必要があります。

  • 大文字と小文字を区別する:Javaは大文字と小文字を区別します。つまり、識別子Helloとhelloは異なります。
  • クラス名:すべてのクラスで、クラス名の最初の文字を大文字にする必要があります。クラス名が複数の単語で構成されている場合、各単語の最初の文字を大文字にする必要があります。例えば、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では、変数をプリセット値のみに制限する列挙型が導入されています。 enumを使用すると、コードのバグを減らすことができます。

例えば、ジュース店のプログラムを設計します。このプログラムでは、ジュースを小、中、大のサイズに制限します。これは、顧客がこれら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デフォルト
クラス、メソッド、および変数修飾子abstract抽象的
classクラス
extends拡張、継承
final最終値、不変
implements実装(インターフェース)
interfaceインターフェース
nativeネイティブ、ネイティブメソッド(Java以外の実装)
new新規、作成
static静的
strictfp厳密、精確
synchronizedスレッド、同期
transient直列化
volatile揮発性
プログラム制御文breakループからジャンプする
case値を定義し、switchに選択させる
continue続ける
defaultデフォルト
do実行
else一致しない
forループ
if分岐
instanceofインスタンス
return返す
switch値に基づいて実行する
whileループ
エラー処理assert式がtrueであるかどうかをアサートする
catch例外をキャッチする
finally例外があるかどうかに関係なく、実行する
throw例外オブジェクトをスローする
throws例外がスローされる可能性があることを示す
try例外をキャッチする
パッケージに関するimportインポートする
packageパッケージ
基本的なデータ型booleanブール型
byteバイト型
char文字型
double倍精度浮動小数点数
float単精度浮動小数点数
int整数型
long長整数型
short短整数型
変数参照superスーパークラス
thisカテゴリ
void返す値なし
予約キーワードgotoキーワードであるが、使用できない
constキーワードであるが、使用できない
null空白

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"); 
    }
}

Java 空白行

空白行またはコメント行は、Javaコンパイラによって無視されます。

継承

Javaでは、クラスは他のクラスから派生させることができます。クラスを作成する必要があり、必要なプロパティまたはメソッドを備えたクラスがすでに存在する場合は、新しく作成されたクラスを継承できます。

継承されたメソッドを使用すると、これらのコードを書き直せずに、既存のクラスのメソッドとプロパティを再利用できます。継承されたクラスはスーパークラス(super class)と呼ばれ、派生したクラスはサブクラス(subclass)と呼ばれます。

インターフェース

Javaでは、インターフェースはオブジェクト間の通信のためのプロトコルとして理解できます。インターフェイスは、継承において重要な役割を果たします。
インターフェイスは、派生で使用されるメソッドのみを定義しますが、メソッドの特定の実装は、派生クラスに完全に依存します。

Javaソースプログラムとコンパイル型の実行上の違い

下記の写真の通りです。

次の記事では、Javaプログラミングのクラスとオブジェクトを説明します。これより、Javaのクラスとオブジェクトをより明確に理解できるようになります。

Share

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です