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のクラスとオブジェクトをより明確に理解できるようになります。
コメントを残す