2022.09.02
IT用語
オブジェクト指向(object-oriented)
オブジェクト指向とは、プログラムを作るための考え方の一つで、「物(オブジェクト)」を組み立てるようなイメージでプログラミングするものです。
役割を持った「物」を作成し、「物」と「物」の間でメッセージを送り合うことでデータを操作し、処理を進めていきます。
プログラミング言語のJava、C++、C#は、オブジェクト指向型の開発方式を仕様として持っています。これらの言語では、「物」はクラス、メッセージはメソッド、データはプロパティ(メンバ変数、フィールド変数)として定義できます。
Javaソースコード
Object_Oriented1.java
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031 032 033 034 035 036 037 038 039 040 041 042 043 044 045 046 047 048 049 050 051 052 053 054 055 056 057 058 059 060 061 062 063 064 065 066 067 068 069 070 071 072 073 074 075
// 2つの値の計算が行える「オブジェクト」 class Calculator2 { // 2つの値を格納する「プロパティ」 private int value1 = 0; private int value2 = 0; // 2つの値を設定する「メソッド」 public void set( int a, int b ) { value1 = a; value2 = b; } // 1つ目の値を取得する「メソッド」 public int value1() { return value1; } // 2つ目の値を取得する「メソッド」 public int value2() { return value2; } // 2つの値の和を戻す「メソッド」 public int add() { return value1 + value2; } // 2つの値の差を戻す「メソッド」 public int sub() { return value1 - value2; } // 2つの値の積を戻す「メソッド」 public int mul() { return value1 * value2; } // 2つの値の商を戻す「メソッド」 public int div() { return value1 / value2; } } // メイン public class Object_Oriented1 { public static void main( String[] args ) { // インスタンス化(実体の作成) Calculator2 obj = new Calculator2(); // 2つの値を設定 obj.set( 12, 4 ); // 計算結果をコンソール出力 System.out.println( "値1: " + obj.value1() ); System.out.println( "値2: " + obj.value2() ); System.out.println(); // 改行 System.out.println( "和 : " + obj.add() ); System.out.println( "差 : " + obj.sub() ); System.out.println( "積 : " + obj.mul() ); System.out.println( "商 : " + obj.div() ); } }
実行結果
2つ値「12」と「4」を使った計算
C:\talavax\javasample>java Object_Oriented1
出力結果
値1: 12 値2: 4 和 : 16 差 : 8 積 : 48 商 : 3
Javaソースコードの解説
ここから2つの整数値を使って計算を行う「物」を定義していきます。
001 002
// 2つの値の計算が行える「オブジェクト」 class Calculator2 {
003 004 005
// 2つの値を格納する「プロパティ」 private int value1 = 0; private int value2 = 0;
計算に使用する2つの値を宣言しています。int型の整数value1とvalue2で、これがプロパティです。
intの前の「private」はアクセス演算子の1つで、クラス内部からだけのアクセスを可能にしています。よって、このソースの場合、プロパティの変更は、以下で説明するメソッドを呼び出すことでして参照と変更が出来ないようになっています。
value1とvalue2の初期値として0を代入しています。
007 008 009 010 011 012
// 2つの値を設定する「メソッド」 public void set( int a, int b ) { value1 = a; value2 = b; }
計算に使用する2つの値を設定するメソッドです。引数のaとbを、それぞれvalue1とvalue2に代入しています。
intの前の「public」はアクセス演算子の1つで、クラス内部と外部の両方でアクセスを可能にしています。このメソッドを呼び出すことで、「private」のvalue1とvalue2の値を変更することができます。
014 015 016 017 018
// 1つ目の値を取得する「メソッド」 public int value1() { return value1; }
021 022 023 024 025
// 2つ目の値を取得する「メソッド」 public int value2() { return value2; }
028 029 030 031 032
// 2つの値の和を戻す「メソッド」 public int add() { return value1 + value2; }
035 036 037 038 039
// 2つの値の差を戻す「メソッド」 public int sub() { return value1 - value2; }
042 043 044 045 046
// 2つの値の積を戻す「メソッド」 public int mul() { return value1 * value2; }
049 050 051 052 053
// 2つの値の商を戻す「メソッド」 public int div() { return value1 / value2; }
以上が、クラスの定義です。
次に、このクラスを使って計算を行う方法を説明します。
057 058
// メイン public class Object_Oriented1 {
059
public static void main( String[] args ) {
060 061
// インスタンス化(実体の作成)
Calculator2 obj = new Calculator2();
ソースの先頭で定義したCalculator2クラスを、new演算子を使ってインスタンス化しています。
インスタンス化とは、実体を作ることで、このソースの場合、objが実体化されたオブジェクトになります。このobjのメソッドを呼び出すことで2つの値の計算をすることができます。
063 064
// 2つの値を設定
obj.set( 12, 4 );
実体化されたobjのsetメソッドで、2つの値を設定してます。
ここでは、1つ目の値を12、2つ目の値を4としています。
066 067 068
// 計算結果をコンソール出力 System.out.println( "値1: " + obj.value1() ); System.out.println( "値2: " + obj.value2() );
069
System.out.println(); // 改行
070 071 072 073
System.out.println( "和 : " + obj.add() ); System.out.println( "差 : " + obj.sub() ); System.out.println( "積 : " + obj.mul() ); System.out.println( "商 : " + obj.div() );
以上です。
関連コンテンツ
割り算で「割り切れる」、「割り切れない」ってどういうこと?
このサイトのオリジナルクラスのMyBufferedImage0クラスを利用して、フルカラーの画像をセピア色に変換してをJPEGG形式のファイルに保存するプログラムを紹介しています。