Java言語による主の祈り(独自拡張版)
Last modified: Sat, 15 Jul 2006 10:15:23 +0900 Junichiro Sueishi
ここは、結城さんによる、プログラム言語で信仰的な内容を表現する試み「Java言語による主の祈り」を独自に拡張したものを公開しているページです。
主の祈りコード解説
以下はオリジナルの作者である結城さんの意図されていた部分。
- 「信仰(faith)」と「希望(hope)」と「愛(love)」というパッケージをインポートしています。
- 「祈り手(Prayer)」は「人間(HumanBeing)」の拡張クラスとして宣言しています。
- 祈りは神さまへ語りかけることですので、HolySpiritualOutputStreamというフィールドを介してwriteします(神さまからの呼びかけに耳を傾けるHolySpiritualInputStreamもあった方がよいですね)。
- mainメソッドでは、私たち(We)が生きている間中、祈りつづける様子が表現されています。祈りが終わるのはisAliveでなくなったときか、予期せぬExceptionが投げられたとき。
- コンストラクタでは「天にましますわれらの父("OurFather.in.Heaven")」との通信を確保し、それを元に聖霊を介した通信経路(HolySpiritualOutputStream)を作成します。
- 三つのメソッドworshipGod, prayForDailyNeed, Amenはそれぞれの祈りの言葉をoutを使って父なる神様に語りかけています。
- 祈りつづけるため、closeメソッドは呼んでいません。finalizeの中でcloseされることを期待しています。
- メソッドがすべてprivateなのは、祈りは各人が自分の意志で自発的に行うものであり、他から強制されて行うものではないことを表現しています。
つづいて、私が勝手に独自拡張した部分について解説します。
クラス構成は以下のようになっています。

- Junichiro(つまりあなた)は、世界で1人のユニークな存在であるので、Singletonパターンが使われています。
- 人間は、神さまによって生かされているのでHumanBeingや、Prayerにmainは不要と考えました。
- Prayerは、非同期で祈ることができるSpiritクラス(java.lang.Threadをextends)を持ち、御霊によって祈ることができる。
- HumanBeingクラスは、祈り、神の導きを受けるためのトリガーであるknock(Object obj)メソッドを持っているが、まだ機能していない。
- Prayerクラスは、HumanBeingのknock(Object obj)をオーバーライドし、knock(Object obj)が機能しているので、神さまに反応することができる。
- 信仰によってのみ、永遠の命を得ることができるメソッドgetLife(Object obj)を追加。
- 神さまは、人間のインスタンスを全て持っているはずなので、特別な通信手段を介することなく、HumanBeing.putVoicesOfTheGod(Object obj)などを直接呼び出すことができる。
- (参考) 神さまは、自らをインスタンス化し、以下のようにJunichiroを創られた。
God god = new God();
Junichiro jun = Junichiro.getLife(god);
System.out.println("Junichiroに命を与えた");
jun.knock(god);
- (残件) 祈りの頻度を変更する仕組みが未実装。HumanBeingからPrayerに創り変えられる様が表現できていない。
参考
- HumanBeing.worshipGod(), HumanBeing.prayForDailyNeed(), HumanBeing.Amen() ルカ 11章2-4節
- HumanBeing.getLife(Object obj) コリントII 5章17節、ローマ 3章、ヘブル 11章35節、ペテロ 1章5節
- Spiritクラス コリントI 12章9節
- Junichiroクラス イザヤ 43章4節
- HumanBeing.knock() コリントII 3章15,16節、
- あと、他の機能については、私は未熟なので聖書からうまく引用できません。見付かり次第追加します・・・
更新履歴
- 2008-10-09 - HTMLへ形式変換
- 2006-07-04 - LOGLOGへ移動(Passwiki形式へ変換)
- 2003-09-02 - ろぐろぐへリンクを追加。
- 2003-08-08 - 更新履歴を追加。
- 2003-07-16 - 初版公開。