《初級/入門編》★


Tutorials: season I

Java™ に学ぶ Jython プログラミング入門
  • Java™ Programming Language〔JPL〕の事例を使って、JavaJython との違いを学びます。

Tutorials: season II

Tutorials - Classes and Objects

Java で記述したクラスに対して、Jython は便利な機能を提供します。

Classes and Objects, #1

import 文を利用すると、Jython の世界から、Java で作成したクラスを扱えるようになります。

Tutorials: season III - Collections

Java™ に学ぶ Jython プログラミング入門
  • Java™ Programming Language〔JPL〕の事例を使って、JavaJython との違いを学びます。

Tutorials: season IV - Standard Packages

Tutorials: season V - Swing 入門

  • 2002-02-10Python.use(better) #応用編, 課題:カラーチャート《Swing 版》
JavaBeans

JavaBeans に準拠したクラスに対して、Jython は便利な機能を提供します。

JFC and Swing

同じ機能を実現したコードの実例を示して、Java/Jython の違いを比較します。

Invoking the Jython Interpreter

Jython の特徴のひとつは、Java アプリケーションを実行中に、そのコードを更新できることです。

Event Properties

Java アプリケーションの実行中にコードを追加すると、その動作を変更できます。

《初級/基礎編》★★



swing/Jython - __doc__

ここで作成したツールは、組み込み型 list の利用法を確認したいときに便利です。

list
list.pop メソッド list.pop の動作を JList/DefaultListModel で視覚化します。
list.append メソッド list.append の動作を JList/DefaultListModel で視覚化します。
swing/Jython - DefaultListModel

組み込み型 list と、JList/DefaultListModel との相互理解を目指します。

list.index

メソッド list.index の動作を JList/DefaultListModel で視覚化します。

list.insert

メソッド list.insert の動作を JList/DefaultListModel で視覚化します。

list.sort

メソッド list.sort の動作を JList/DefaultListModel で視覚化します。

list.__getslice__

メソッド list.__getslice__ の動作を JList/DefaultListModel で視覚化します。

》作業中です《

list.__getitem__

《初級/応用編》★★★



Swing/JTree
〈GoF〉Composite を導入する ツリーの各ノードは、ファイル(末端)かフォルダー(枝)になる可能性があります。そこで〈GoF〉Composite を導入して、これらの違いを意識せずに統一して扱えるようにします。
〈GoF〉Composite を実現する Composite::Componen(Node)は、共通するプロトコルを規定します。Composite::Leaf(FileNode)は、単一オブジェクトの動作を規定します。Composite::Composite(DirNode)は、複合オブジェクトの動作を規定します。
Swing/Jython - JTree

フォルダー/ファイルの階層構造を「簡単に」閲覧できるツールがあると便利です。

DefaultMutableTreeNode - getUserObject

ツリー JTree の各ノードを選択すると、その情報がテキスト領域 JTextArea に表示されます。

〈GoF〉Iterator が必要に

OOP では「抽象化」を支援するメカニズムを利用すると、特定の実現方法に依存した「条件反復」を排除できるので、SP の定石である「for 文」によってコードが汚染されるのを防げます。

〈GoF〉Iterator を導入する

ツリーの各ノードには、イテレーターが規定してあるので、for 文を使って(その傘下にある)各ノードを参照できるようになります。

〈GoF〉Iterator を実現する
  • 特殊メソッド __iter__ を規定すると、組み込み関数 iter に呼応して、各要素を参照するイテレーターが得られます。

》作業中です《

《余録》Iterator の隘路

Java の歴史を紐解くと、コレクションに対して反復処理を行う、いくつかのイディオムが登場します。

〈GoF〉Visitor を導入する
  • ボタンによって、テキスト表示〔Text〕とツリー表示〔Tree〕を選択できます。
〈GoF〉Visitor を実現する

。また、メタプログラミングを導入すると、冗長なクラスを削除できるので、簡潔で見通しの良いコードを記述できるようになります。

〈GoF〉Command を実現する

特殊メソッド __call__ は、演算子 () に呼応する、呼び出し可能オブジェクトの動作を規定します。

》作業中です《

Last updated♪2009/07/08






Java プログラマーのための Python 導入ガイド

記事一覧入門編 基礎編応用編中級編

Java プログラマーのための Python 導入ガイド《Jython2.5》改訂版

《著》小粒ちゃん+α《監修》小泉ひよ子とタマゴ倶楽部
第1版♪2003/05/23 ● 第2版♪2009/04/03

■ 概要
ようやく、Jython2.5.0 がリリースされました。(^.^)v

>>> 2009/06/16, 13:33
The Jython development team is proud to announce the release of Jython 2.5.0 final!

>>> 2009/06/08 
Jython 2.5rc4 has been released!
(Released on June 8, 2009.)

>>> 2009/04/03 
Jython 2.5 のリリースが待たれますが、それに先行する Jython 2.5b3 を利用して、
過去に作成した記事に加筆して、再構成したものを提示します。
■ 関連記事
OOP への道 〜 if/for/配列と別れる50の方法 〜
  • Python には、伝統的なC言語風の for 文や悪名高い switch 文がありません。それには理由があります。その理由のひとつは、これらが「コードの汚染」を誘発するからです。「アナログ Java 思考からディジタル Jython 思考へ」パラダイムシフトの旅に出掛けませんか。
例題で学ぶ Jython/Swing デザインパターン《Jython2.5》改訂版
  • アプリケーションを作成する過程を通して、Jython/Swing によるデザインパターンを習得します。
  • 《JTree篇》Swing/GUI を使って階層構造を持つ情報を提示します。〈GoF〉Composite/Iterator/Visitor/Command パターンを導入すると、if/for 文によるコードの汚染、配列の境界問題が解消されます。

《中級編》★★★★

》作業中です《

ソースコードの歩き方《Jython2.5》

Jythonソースコードを眺めると、Python について理解が深まるだけでなく、Java の典型的なイディオムを再考するのに役立ちます。

ソースコードの歩き方《IronPython2.6》

IronPythonソースコードを眺めると、Python について理解が深まるだけでなく、C# の典型的なイディオムを再考するのに役立ちます。