形式名詞
日本語の「形式名詞(こと・もの・ところ・わけ…)」は、意味が希薄で学習者にはつかみにくい存在です。
これをプログラミングの基本概念──「クラス」「インスタンス」「オブジェクト」「メソッド」に例えると、理解がすっきりします。
プログラミングの基礎用語
まず、比喩に使う4つの概念を簡単に説明します。
クラス(Class)
- 設計図や雛形。
- どんな性質やふるまいを持つかを定義するが、それ自体はまだ具体物ではない。
インスタンス(Instance)
- クラスから作られた具体的な実体。
- 設計図から製品を1つ組み立てたようなもの。
オブジェクト(Object)
- 実体化された存在を指す総称。
- 多くの場合「インスタンス」とほぼ同じ意味で使われる。
メソッド(Method)
- クラスやオブジェクトが持つ「ふるまい」や「処理」。
- 例:犬クラスが持つ
bark()メソッド=「ワンと吠える」
普通名詞「犬」
普通名詞「犬 = dog」は、プログラミングのクラスでは「具象クラス(concrete class)」と呼ばれ、
そのままインスタンス化(製品化)できます。
class Dog {
void bark() { System.out.println("ワン!"); } // メソッド
}
Dog pochi = new Dog(); // インスタンス生成
pochi.bark(); // メソッド呼び出し
Dog= クラス(犬という設計図)pochi= インスタンス/オブジェクト(具体的な犬の1匹)bark()= メソッド(犬が吠えるというふるまい)
形式名詞との対応
一方、形式名詞「こと」は、抽象クラス(abstract class)で、直接インスタンス化できないオブジェクト「枠組み」だけが与えられたものです。
- 形式名詞(こと・もの) → 抽象(abstract)クラス
- 動詞や形容詞の内容(走る・考える・不思議だ) → メソッド
- 「走ること」 → クラスにメソッド「動詞」を渡してオブジェクト化したもの
- 「そのこと」 → 文脈から得られたデータを「指示詞」として引数に与えてできた具体的オブジェクト
コード風に表すと:
abstract class Koto {
String action;
Koto(String a) { action = a; }
}
Koto hashiruKoto = new Koto("走る"); // 「走ること」
Koto sonoKoto = new Koto("前に述べた事"); // 「そのこと」
[Koto]という昼食クラスに、[a;・・・]というメソッドをわたして Koto → hashiruKotoというインスタン
ポイント
プログラミング比喩を用いると、形式名詞と普通名詞の違いを、その意味の強さ「インスタンス」として理解できる
- 動詞や形容詞は「メソッド」
- 両者が結びついて「名詞句(オブジェクト)」として働く
抽象クラスと具象クラスの違い
| プログラミング概念 | 特徴 | 日本語での対応 | 点訳での扱い |
|---|---|---|---|
| 抽象クラス (abstract class) | – 直接インスタンス化できない – 抽象メソッドを持つ – サブクラスで実装が必要 | 形式名詞:「こと」「もの」「ところ」など 例:「走ること」「不思議なもの」 | 前の語と一体化して区切らない |
| 具象クラス (concrete class) | – 直接インスタンス化できる – メソッドの中身が定義済み | 普通名詞:「人」「子」「娘」など 例:「その人」「若い娘」 | 自立語なので区切る(「その|人は」「若い|娘が」) |
点訳の方法(まとめ)
- 抽象クラス(形式名詞) → 意味が弱く前に修飾要素が必要であり、単独ではオブジェクトになれない
- 前の語と一体化 → 区切らない。
- 具象クラス(普通名詞) → 具体的的な意味を持ち、そのままオブジェクトになれる
- 自立語 → 区切る。

