javaの勉強をしています、
本当に基本的な質問ですが、
javaで言うプロパティ(メソッドでのみ値の参照、取得)と
メンバ変数、どちらの方式でも良いきがするのですが何が
プロパティでの隠蔽を進めている理由はなぜでしょうか
基本的なことですが宜しくお願い致します。
「基本的である」と判断するのは質問者さんで良いのでしょうか。
自身で分からないのに「基本的」とするのはおかしいですよ。
にしても、他者が判断する材料も少なすぎます。
何かしらコードや参考記事なと例示してください。
クラス内のインスタンス変数を指しているのだと思いますが、Javaでは「プロパティ」とは言いませんね。フィールドです。setter/getterに代わるフィールドへのアクセスを提供するプロパティは別のいくつかのオブジェクト指向プログラミング言語には存在します。質問の主旨は、setter/getterに代わる「プロパティ」を使うことを勧めているのはなぜか?と言うことでしょうか。それともプロパティを含むsetter/getterのようなアクセサーメソッドでクラス内インスタンス変数を隠蔽することを勧めているのは何故か?と言うことでしょうか。
> 隠蔽を進めている
それは具体的にどちらからの情報でしょうか.
Javaで「プロパティ」と言った場合、通常はjava.util.Propertiesを使った.propertiesファイルを使ったキーバリューのセットの機能を意味します。
https://docs.oracle.com/javase/jp/13/docs/api/java.base/java/util/Properties.html
しかし、質問者さんは全く違うものを想定しているようです。
Java以外の言語の用語としての「プロパティ」を想定しているのであれば、その言語を明記してください。言語によって意味が微妙に異なる場合があるため、その言語と比較してJavaで相当するものが何かを説明する必要があるからです。(例えば、C#やJavaScriptにはプロパティが言語の用語としてありますが、お互いがある程度は似ているとは言え、厳密に全く同じというわけではありません)
もし、Javaの用語として「プロパティ」と使っていて、先程の.propertiesファイルの話ではないのであれば、どこでそれを聞いたのか、サイトや書籍等を明確にしてください。その使われ方で、その著者が何を言いたかったのかを分析しないと、一体何のことを意味しているのかわからないからです。(世の中には、単に「フィールド」のことを「プロパティ」と言っている質の悪いサイトや書籍があるため、そのようなことがないかを確認しないと深く取り下げることができません。)
ただ、もし、友人や知人、先輩などから聞いたというのであれば、ここに来て貰うか、その人に聞いてください。
エスパーして「get/set」のことを指しているのだと思いますが、
確かにraccyさんのおっしゃるように、「説明している人間がそもそも間違っている」っていうパターン、
ありますね。
回答1件
あなたの回答
tips
プレビュー