ウェブサイト検索

Java プログラミングとカプセル化のオブジェクト指向アプローチ - パート 5


このシリーズの開始時から (そしてその前から) Java がオブジェクト指向プログラミング言語であることはご存知でした。オブジェクト指向プログラミング言語は、メソッドの属性としてデータを含む「オブジェクト」の概念に基づいています。

Java のすべてのオブジェクトには、インスタンス変数とメソッドによって表される状態と動作があります。クラスの各インスタンスは、そのインスタンス変数に一意の値を持つことができます。

例えば、

マシン A には Debian が搭載されており 8GB の RAM が搭載されており、マシン B には 4GB の RAM が搭載された Gentoo がインストールされている可能性があります。また、Gentoo がインストールされたマシンの管理には、マシンの状態に応じて動作するという、より多くの知識が必要であることは明らかです。ここでのメソッドはインスタンス変数値を使用しています。

JVM はクラスを解析するときに、その種類のオブジェクトを作成します。クラスを作成するとき、実際には、オブジェクトが何を認識し、どのように動作するかをクラスに指示するコンパイラーのように動作します。特定のタイプのすべてのオブジェクトは、同じインスタンス変数に対して異なる値を持つことができます。

クラスのすべてのインスタンスには同じメソッドがありますが、すべてが異なる動作をする可能性があります。

OS クラスには、OS 名OS タイプOS カテゴリという 3 つのインスタンス変数があります。

OS
OS_Name
OS_Type
OS_Category
Boot()
Reboot()
scan()

Boot() メソッドは、そのインスタンスの OS 名で表される 1 つの OS を起動します。したがって、あるインスタンスで boot() を実行すると Debian が起動し、別のインスタンスでは Gentoo が起動します。メソッド コードはどちらの場合でも同じです。

Void Boot() 
	{
	bootloader.bootos(OS_Name);
	}

main() メソッドの直後にプログラムの実行が開始されることはすでにご存知でしょう。メソッドに値を渡すことができます。

たとえば、起動時にどのサービスを開始するかを OS に次のように指示したいとします。

You are already aware that the program starts to execute just after the main() method. You can pass values into you method. For example you would like to tell you OS what services to start at boot as:
OS.services(apache2);

メソッドに渡すものを引数と呼びます。メソッド内で型と名前を持つ変数を使用できます。メソッドがパラメーターを受け取る場合は、パラメーターを使用して値を渡すことが重要です。

OS deb = debian();
deb.reboot(600);

ここで、OS の再起動メソッドは、値 600 (600 秒後にマシンを再起動) を引数としてメソッドに渡します。これまで、メソッドが常に void を返すことを見てきました。これは、単に次のように何も返さないことを意味します。

void main()
	{
	…
	…
	}

ただし、コンパイラに必要なものを正確に取得するように要求することができ、コンパイラは間違った型を返すことはありません。次のようにするだけでもよいでしょう:

int Integer()
	{
	…
	…
	return 70;
	}

複数の値 value を 1 つのメソッドに送信できます。これを行うには、2 つのパラメーター メソッドを呼び出し、それを引数に送信します。変数の型とパラメータの型は常に一致する必要があることに注意してください。

void numbers(int a, int b)
	{
	int c = a + b;
	System.out.print(“sum is” +c);
	}
インスタンス変数の宣言と初期化

1. 初期化する値がわからない場合。

int a;
float b;
string c;

2. 初期化する値がわかっているとき。

int a = 12;
float b = 11.23;
string c = tecmint;

: インスタンス変数はローカル変数とよく混同されますが、これらを区別するには両者の間には非常に細い線があります。

3. インスタンス変数は、メソッド内で宣言されるローカル変数とは異なり、クラス内で宣言されます。

4. インスタンス変数とは異なり、ローカル変数は使用する前に初期化する必要があります。初期化前にローカル変数を使用すると、コンパイラはエラーを報告します。

カプセル化

カプセル化について聞いたことがあるかもしれません。これは、データと関数を単一のコンポーネントにバインドできるようにするほとんどのオブジェクト指向プログラミング言語の機能です。 カプセル化はクラスによってサポートされており、オブジェクトの周囲に壁を作成し、それらのプロパティとメソッドを選択的に隠すことにより、コードを偶発的な損傷から保護します。

必要に応じて、適切なチュートリアルでカプセル化の詳細を拡張します。現時点では、カプセル化とは何かを理解するだけで十分です。それは何をするのでしょうか?そして、それはどのように行われるのでしょうか?

それは今のところすべてです。この Java シリーズの次のパート「Java のクラスとオブジェクトと Java で最初のオブジェクトを作成する」に取り組んでいる間、引き続き接続してください。このシリーズと投稿が気に入ったら、フィードバックでお知らせください。