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

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

新規登録して質問してみよう
ただいま回答率
85.50%
オブジェクト

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

オブジェクト指向

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

Q&A

解決済

4回答

2722閲覧

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

mr0237

総合スコア164

オブジェクト

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

オブジェクト指向

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

0グッド

0クリップ

投稿2017/04/19 02:23

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

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

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

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

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

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

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

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

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

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

せめて呼ぶなら

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

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

ベストアンサー

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

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

投稿2017/04/19 02:31

編集2017/04/19 02:31
akabee

総合スコア1947

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

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

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

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

投稿2017/04/19 02:28

編集2017/04/19 02:39
maisumakun

総合スコア145121

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

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

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

投稿2017/04/19 05:14

King_of_Flies

総合スコア382

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

King_of_Flies

2017/04/19 05:25

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

0

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

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

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

投稿2017/04/19 03:26

tacsheaven

総合スコア13703

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2017/04/19 04:14

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

2017/04/19 04:24

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問