Java
 Computer >> コンピューター >  >> プログラミング >> Java

Javaプログラムの基本構造とメンバーの役割を徹底解説

Javaでコードを記述する際には、標準として守るべき一連のルールや規約が存在します。たとえば、クラスには変数(フィールド)と関数(メソッド)が含まれ、メソッドはフィールドを操作するために使われます。さらに、クラスは継承によって拡張したり、改良したりすることも可能です。

Javaプログラムの基本構造

インポートするパッケージの一覧;
public class <クラス名>
{
    コンストラクタ(ユーザー定義または暗黙的に生成)
    {
        コンストラクタが実行すべき処理;
    }
    データ要素/クラスのデータメンバー;
    ユーザー定義の関数/メソッド;
    public static void main(String args[])
    {
        クラスのインスタンス生成;
        その他の操作;
    }
}

Javaプログラムの実行は「main」メソッドから始まります。mainメソッドは何も値を返さないため、戻り値の型はvoidです。また、JVMや他のコードからアクセスできる必要があるため、publicとして宣言されます。

コンストラクタは、定義済みのクラスのオブジェクトを初期化するために使用される特殊なメソッドです。コンストラクタにはfinal、abstract、static、synchronizedといったキーワードを付けて宣言することはできません。

一方、ユーザー定義のメソッドは特定のタスクを実行するためのものであり、final、abstract、static、synchronizedなどのキーワードと組み合わせて柔軟に利用できます。

サンプルコード

public class Employee
{
    static int beginning = 2017;
    int num;
    public Employee(int i)
    {
        num = i;
        beginning++;
    }
    public void display_data()
    {
        System.out.println("The static value is : " + beginning + "\n The instance value is :"+ num);
    }
    public static int square_val()
    {
        return beginning * beginning;
    }
    public static void main(String args[])
    {
        Employee emp_1 = new Employee(2018);
        System.out.println("First object created ");
        emp_1.display_data();
        int sq_val = Employee.square_val();
        System.out.println("The square of the number is : "+ sq_val);
    }
}

実行結果

First object created
The static value is : 2018
The instance value is :2018
The square of the number is : 4072324

コードの解説

この例では、「Employee」という名前のクラスに複数の属性が定義されています。コンストラクタは引数を受け取り、インスタンス変数numに代入するとともに、static変数beginningを1つインクリメントします。「display_data」メソッドはクラス内に保持されているデータを表示し、もう1つの「square_val」メソッドは特定の数値の2乗を返します。mainメソッドでは、クラスのインスタンスを生成して各メソッドを呼び出しており、その結果がコンソールに出力されます。

staticメンバーとインスタンスメンバーの違い

staticが付けられた変数やメソッドはクラスそのものに属し、すべてのインスタンス間で共有されます。一方、staticが付いていないメンバーは、オブジェクトごとに個別の値を持ちます。上記の例では、beginningはstatic変数のため全オブジェクトで共有され、初期値2017からコンストラクタの実行によって2018に更新されます。それに対してnumはインスタンス変数であり、オブジェクトごとに独立した値を保持します。実行結果の「4072324」は、2018 × 2018 の計算結果です。

  1. 直方体の表面積と体積を求めるJavaプログラム

    この記事では、直方体の表面積と体積を計算するJavaプログラムの書き方について詳しく解説します。直方体とは、6つの長方形の面で構成される三次元の立体のことであり、各辺の長さ・幅・高さがそれぞれ異なる場合があります。立方体と直方体の違いは、立方体では長さ・高さ・幅がすべて等しいのに対し、直方体ではこれら3つの寸法が必ずしも同じではないという点です。直方体の表面積と体積の計算式直方体の表面積は、次の式で求めることができます。2*(縦 × 横 + 横 × 高さ + 高さ × 縦)直方体の体積は、次の式で求めることができます。縦 × 横 × 高さ以下に具体的な計算例を示します。入力Length = 6

  2. Javaクラスの静的メンバーはどのような順序で読み込まれる?JVMの処理手順を解説

    Javaにおいて、静的変数(static変数)はクラスがロードされるタイミングで生成されます。これは静的ブロック(staticブロック)が実行されるよりも前の段階であり、静的ブロックの主な役割は静的変数に値を代入することです。静的変数には、定義されたクラスのすべてのインスタンス間で共有される値が格納されます。一方、静的ブロックとは、クラスが最初にロードされるときに一度だけ実行されるコード領域のことです。したがって、クラスロード時に実行したい初期化処理やロジックがある場合は、その処理を静的ブロック内に記述しておくことで、クラスのロード時に確実に実行させることができます。JVMが静的メンバーを読み