質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.50%

  • オブジェクト指向

    284questions

    オブジェクト指向プログラミング(Object-oriented programming;OOP)は「オブジェクト」を使用するプログラミングの概念です。オブジェクト指向プログラムは、カプセル化(情報隠蔽)とポリモーフィズム(多態性)で構成されています。

  • オブジェクト

    92questions

    オブジェクト指向において、データとメソッドの集合をオブジェクト(Object)と呼びます。

「属性」と「操作」という名前の由来は?(被ってしまいすいません・・・)

解決済

回答 4

投稿

  • 評価
  • クリップ 0
  • VIEW 464

mr0237

score 143

JAVAのオブジェクト指向を勉強・練習している者です。エンジニアとは関係ないような質問をして、さらに以前の質問と被ってしまうところがありすいませんが、「スッキリわかるJava入門 第2版 (スッキリシリーズ)」の(P287の)「オブジェクトの姿」のところを、復習を兼ねて引き続き読み直しているのですが、以前の質問

属性 = プロパティ(データ(箱))
操作  = メソッド(処理) です。

と書かれていたんですが、なぜプロパティメソッド等【属性】や【操作】と呼ばれるようになったのですか?

私も頭がちょっとアレなので混乱したのですが、ネットや参考書をみても

【属性】・・・情報を覚えておく箱 アトリビュート、プロパティ値とも呼ばれる
【操作】・・・行動や動作の手順 関数、ファンクション と呼ばれる

と書いてあるんですが、【属性】【操作】と呼ばれるようになった理由が書いておりません。

さらに、辞書で調べてみても

【属性】・・・・一般にあるものに共通して備わっているとされる性質や特徴のことである。
【操作】・・・・機械・器具などを動かして、作業させること。 

としか書いておりません。

「属性」とか「操作」とか書かれていると、初心者側からすれば何のことだがよくわからないと思いますが・・・

せめて呼ぶなら

「属性」のことを「データの値」や「プロパティ値」
「操作」のことを「処理」

とかにすればいいと思うんですが、【属性】とか【操作】と呼ばれるようになった理由は何でしょうか?

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 4

checkベストアンサー

+7

そのときの和訳者が、そう決めたからです。
その和訳者にとっては、「属性」「操作」が最もしっくりきたのです。
言語には曖昧さがつきものです。ある人にとって最も良いと思う表現が、全ての人に最も良いとは限りません。あなたがそう思ったのと同様に、「データの値」よりも「属性」のほうが分かり易いと思う人もいるはずです。

あなたは既に、「属性」とは「データの値」や「プロパティ値」のことであり、「操作」のことを「処理」であると自分の頭で説明できています。これが何かを理解するということです。オブジェクト指向の勉強には限りません。
「属性」や「操作」は単にプロパティやメソッドの直訳にすぎないと思います。本質的に大事なのはその概念のプログラミングコード内での意味を正確に理解することです。そういう意味で、あなたは正確な理解に近づいていると思います。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+4

「属性」については、attributeやpropertyの訳語が「属性」となりうるので、そんなに不自然でもありません。

…というより、専門用語は共通理解できればそれでいい、一種の「符号」にすぎないものなので、語源を追求してどうこう、というのは知的好奇心を満たすことはできても、専門を理解する上ではほとんど意味のない行為です。

コンピューターからは離れますが、会社で「定款」に当たる、団体の根本規則は、学校法人については「寄附行為」と呼ばれています。「行為」ですらないものなので、明治期に訳し間違えた名残という説もあるのですが、いまだに法的な用語として生き残っています。あと、原子よりもっと細かな素粒子として「クオーク」がありますが、これは小説の1節から取られている、とのことです。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

もともとプロパティという単語がプログラム関連で有名になったのは、Visual Basic でコンポーネントのふるまいを決定する諸々のデータ(横位置、縦位置、幅、高さ、名称など)を、総称して「プロパティ」と呼んだのが起源のような気がします。
※プログラミング言語としては Delphi で property 予約語がクラスの特殊なメンバとして出てきたのが初、だったっけか?

で……プロパティは言語によって表すものが異なったりするので、言語に依存しない訳語として「属性」を使っているのだと思います。

実のところ、Java では「プロパティ」だと System.getProperies() の結果だったり、java.util.Properties クラスで管理している情報(プロパティファイル)のことだったりしますので文脈によって意味が異なってきます。(逆にクラスのメンバフィールドをプロパティとは呼ばない)

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/04/19 13:14

    C# では「属性」と言えば主に System.Attribute から派生したクラス・オブジェクトのことを指します。「操作」と言えばメソッドだけではなく代入やインスタンス化なども指します。なので、言語には依存すると思います。

    キャンセル

  • 2017/04/19 13:24

    確かに、C# の仕様書(JIS X 3015:2008)の定義はそうですね。
    ただ Java だと属性というものの定義がないので(そもそも JIS 規格がないですが)、Java の本としてはセーフかな。

    キャンセル

0

【属性】・・・・一般にあるものに共通して備わっているとされる性質や特徴のことである。

ここでいう性質がstring型やint型でそれぞれの型には特徴がありますから、
属性であってると思いますよ。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/04/19 14:25

    人間というオブジェクトに属性を持たせるなら、
    名前とか身長とか定義されるって分かりやすいけど、
    人間というオブジェクトにデータの値を持たせるって表記されると
    太郎 170 とかになって何の数値かとか分からないですよ。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.50%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    java javax.sound.sampled

    現在javaで音楽再生をさせようと考えているのですが、再生する際にそのファイルのm秒を取得しようと思っています。 そこで http://e-class.center.yuge.

  • 受付中

    java annotationを使った初期化(dependency injekuction)の実装方...

    tomcatでは、@WebServlet, @WebListenerなどのannotationを指定することで、web.xml等を記述しなくてもサーブレットの登録や初期化処理が行わ

  • 解決済

    インスタンスと型について

    こんにちは。最近Java SE8 Programmerの試験の勉強をしております。実務はほとんどゼロで、この資格でプログラミングの勉強をしている感じです。 その中で気になった点が

  • 解決済

    以下のコードいついて

    APIリファレンスでArrayクラスのcopyOfメソッドを見ていて、Object[].classという記述を見て、良くわからなかったため、自分で実験しようとして以下のようなコード

  • 解決済

    文字列からnewするインスタンスを判別する方法

    ○前提 Aクラス・Bクラス・Cクラスがあります。 Mainクラスで処理中、とあるString配列から1要素を取り出しました。 中身は"B"でした。 ○やりたいこ

  • 解決済

    Java ArrayList スレッドセーフ removeメソッド

    JavaのArrayLIstのスレッドセーフについて質問です。 Java SIlver 黒本より ソース1 Arraylist<String> list = ne

  • 解決済

    「java.sql.Connectionはスレッドセーフか」と聞かれたらどう答えますか

    「java.sql.Connectionはスレッドセーフか」と聞かれたらどう答えますか。 まず、Webで調べてみると、JDBCの仕様はスレッドセーフとしているようです。実装が

  • 解決済

    等価 等値 について

    このコードはequalsなので等価の判定だと思うのですが なぜか”違う内容です”と表示されてしまいます。 なぜこうなるのかご教授お願いいたします。 package hash;

同じタグがついた質問を見る

  • オブジェクト指向

    284questions

    オブジェクト指向プログラミング(Object-oriented programming;OOP)は「オブジェクト」を使用するプログラミングの概念です。オブジェクト指向プログラムは、カプセル化(情報隠蔽)とポリモーフィズム(多態性)で構成されています。

  • オブジェクト

    92questions

    オブジェクト指向において、データとメソッドの集合をオブジェクト(Object)と呼びます。