JavaのしくみとJavaのコード構造の理解-パート2


前回の投稿「Javaとは何かとJavaの歴史」では、Javaとは何か、Javaの機能の詳細、リリース履歴とその命名、およびJavaが使用される場所について説明しました。

この投稿では、Javaプログラミング言語の動作とコード構造について説明します。先に進む前に、Javaは「WriteOnce Run Anywhere/Anytime(WORA)」を念頭に置いて開発されたことを思い出してください。これは、開発されたアプリケーションがアーキテクチャ的に中立で、プラットフォームに依存せず、移植可能であることを保証することを意味します。

Javaの動作

これらの目標を念頭に置いて、Javaは、4つの段階に分類できる以下の作業モデルを使用して開発されました。

ソースファイルを書き込みます。このファイルには、Javaプログラミング言語用に確立されたプロトコル内のすべてのプロシージャ、メソッド、クラス、およびオブジェクトが含まれています。ソースファイルの名前はクラスの名前である必要があり、その逆も同様です。ソースファイル名の拡張子は .java である必要があります。また、ファイル名とクラス名では大文字と小文字が区別されます。

Javaコンパイラを介してJavaソースコードファイルを実行します。 Javaソースコードコンパイラは、ソースファイルのエラーと構文をチェックします。すべてのエラーと警告を修正してJavaコンパイラを満足させずに、ソースコードをコンパイルすることはできません。

コンパイラはクラスファイルを作成します。これらのクラスファイルは、ソースコードファイル名と同じ名前を継承しますが、拡張子は異なります。ソースファイル名の拡張子は 'filename.java' ですが、コンパイラによって作成されるクラスファイルの拡張子は 'filename.class' です。このクラスファイルはバイトコードにコード化されています–バイトコードは魔法のようなものです。

Javaコンパイラによって作成されたこのクラスファイルは移植可能であり、アーキテクチャ的に中立です。このクラスファイルを移植して、任意のプロセッサアーキテクチャおよびプラットフォーム/デバイスで実行できます。必要なのは、どこにいてもこのコードを実行するためのJava仮想マシン(JVM)だけです。

ここで、例を使用して上記の4つの段階を理解します。これは、Javaプログラムコードの小さなサンプルです。以下のコードを理解していなくても心配しないでください。今のところ、それがどのように機能するかを理解してください。

public class MyFirstProgram
{
    public static void main(String[] args)
    {
        System.out.println("Hello Tecmint, This is my first Java Program");
    }
}

1.このプログラムを作成し、クラス名MyFirstProgramを定義しました。このプログラムは 'MyFirstProgram.java' として保存する必要があることに注意してください。

上記のステージ1を思い出してください–クラス名とファイル名は同じで、ファイル名の拡張子は .java である必要があります。また、Javaでは大文字と小文字が区別されるため、クラス名が「MyFirstProgram」の場合、ソースファイル名は「MyFirstProgram.java」である必要があります。

「Myfirstprogram.java」や「myfirstprogram.java」などの名前を付けることはできません。慣例により、プログラムが実際に実行していることに基づいてクラスに名前を付けることをお勧めします。

2.このJavaソースファイルをコンパイルするには、Javaコンパイラに渡す必要があります。 Javaコンパイラは基本的に、エラーや警告がないかソースコードをチェックします。すべての問題が解決されるまで、ソースコードをコンパイルしません。 Javaソースコードをコンパイルするには、以下を実行する必要があります。

$ javac MyFirstProgram.java

ここで、MyFirstProgram.javaはソースファイルの名前です。

3.コンパイルが成功すると、Javaコンパイラが同じディレクトリに MyFirstProgram.class という名前の新しいファイルを作成したことがわかります。

このクラスファイルはバイトコードでコード化されており、任意のプラットフォーム、任意のプロセッサアーキテクチャで、いつでも実行できます。 Linuxまたはその他のプラットフォーム上のJVM(Java仮想マシン)内でクラスファイルを実行するには、次のようにします。

$ java MyFirstProgram

したがって、上記で学んだことはすべて、次のように要約できます。

Java Source Code >> Compiler >> classfile/bytecode >> Various devices running JVM 

Javaのコード構造を理解する

1.Javaソースコードファイルにはクラス定義が含まれている必要があります。 1つのJavaソースファイルに含めることができるパブリッククラス/トップレベルクラスは1つだけですが、多くのプライベートクラス/内部クラスを含めることができます。

外部クラス/トップクラス/パブリッククラスは、すべてのプライベートクラス/内部クラスにアクセスできます。クラスは中括弧内にある必要があります。 Javaのすべてはオブジェクトであり、クラスはオブジェクトの青写真です。

Javaのパブリック/プライベートクラスのデモ:

public class class0
{
...
	private class1
	{
	…
	}

	private class 2
	{
	…
	}
...
}

2.クラスには1つ以上のメソッドが含まれています。メソッドは、クラスの中括弧内に収まる必要があります。ダミーの例は次のとおりです。

public class class0
{
	public static void main(String[] args)
	{
	…..
	…..
	}
}

3.メソッドに1つ以上のステートメント/命令が含まれています。命令は、メソッドの中括弧内に配置する必要があります。ダミーの例は次のとおりです。

public class class0
{
	public static void main(String[] args)
	{
	System.out.println("Hello Tecmint, This is my first Java Program");
	System.out.println("I am Loving Java");
	…
	...
	}
}

この時点で言及することも重要です–すべてのステートメントはセミコロンで終了する必要があります。ダミーの例は次のとおりです。

System.out.println("Hello Tecmint, This is my first Java Program");
...
...
System.out.println("I am Loving Java");

詳細な説明を含む最初のJavaプログラムを作成します。この例では、説明はここにコメントとして配置されています(//はコメントアウトされていることを意味します)。プログラム内にコメントを書く必要があります。

これは良い習慣であるだけでなく、後でいつでもあなたや他の人がコードを読めるようになるからです。

// Declare a Public class and name it anything but remember the class name and file name must be same, say class name is MyProg and hence file name must be MyProg.java
public class MyProg

// Remember everything goes into curly braces of class?
{
 

// This is a method which is inside the curly braces of class.
   public static void main(String[] args)

    // Everything inside a method goes into curly braces	
    {
        
    // Statement or Instruction inside method. Note it ends with a semicolon
    System.out.println("I didn't knew JAVA was so much fun filled");
    
    // closing braces of method
    }

// closing braces of class
}

上記の単純なJavaプログラムの詳細な技術的説明。

public class MyProg

上記のクラス名はMyProgで、MyProgはパブリッククラスです。つまり、誰でもアクセスできます。

public static void main(String[] args)

ここでは、メソッド名はパブリックメソッドであるmainであり、誰でもアクセスできることを意味します。戻り値の型はvoidであり、戻り値がないことを意味します。 'Strings [] args' は、メソッドmainの引数がargsと呼ばれる配列でなければならないことを意味します。今のところ、「静的」の意味について心配する必要はありません。必要に応じて詳しく説明します。

System.out.println("I didn't knew JAVA was so much fun filled");

System.out.lnは、JVMに出力を標準出力(この場合はLinuxコマンドライン)に出力するように要求します。 printlnステートメントの中括弧の間にあるものはすべて、変数でない限り、そのまま印刷されます。変数の詳細については後で説明します。ステートメントはセミコロンで終わります。

今何かがはっきりしていなくても、これについて心配する必要はありません。また、何も思い出す必要はありません。投稿に目を通し、用語を理解して、状況があまり明確でない場合でも作業してください。

それは今のところすべてです。 Tecmintへの接続を維持します。以下のコメントで貴重なフィードバックをお寄せください。次のパート「Javaのクラスとメインメソッド」に取り組んでおり、まもなく公開される予定です。