No.2ベストアンサー
- 回答日時:
class Sample1 {
public String s;
}
class Sample2 {
private String s;
public void setS(String s) {
this.s = s;
}
public String getS() {
return this.s;
}
}
こういうシンプルな実装を比べるなら
どっちも同じ意味であり、違いはないわ。
じゃあ、何故getterやsetterを用意するのか、
と言うことになるわね。
そもそも初期のJavaはフィールド(インスタンス変数)はSample1が当たり前だったわ。
実装も楽だしね。
でも、これを覆す概念が出現したの。そいつは「JavaBeans」よ。
JSPからの利用を前提にしているため、インターフェースの統一として
get~、set~(~がJSPに記述する部分)、つまりアクセサが仕様として確立したわ。
直接フィールドにアクセスする仕様にしなかったのは利便性のためよ。
例えはDate型で日付を保持しているフィールドtodayがあるとする。
もし、直接フィールドにアクセスすると、利用者は
Date型でtodayを取得し、必要に応じて変換することになるわ。
もし、その変換が常に必要ならば
getDate内部で変換してから渡してあげたほうが効率いいわね。
setも同様。
Stringのフィールドにnullが渡されたときに""にするとか
そういうこともできるわ。
長くなったけど簡単に言うと
いろいろ便利だから
ね。
主に拡張性や保守性的な意味で。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java 複数TBLのオブジェクトを1つの変数(オブジェクト)でまとめて管理したい 1 2022/12/17 00:12
- Java JavaのSingletonパターンのprivateの持つ意味が分かりません。 5 2022/06/12 10:38
- その他(プログラミング・Web制作) このプログラミングをどう組みますか? Googlecolabでやってるんですが、出来る方お願いします 1 2022/07/13 10:52
- その他(プログラミング・Web制作) どういうプログラムで組みますか?google colabでやってるんですけど、出来る方お願いします。 1 2022/07/17 18:41
- その他(プログラミング・Web制作) どういうプログラムで組みますか?google colabでやってるんですけど、出来る方お願いします。 1 2022/07/06 09:28
- Java インスタンス ダウンキャストについて以下の解釈であっているか教えて欲しいです。 サブクラスをスーパー 1 2022/03/27 18:53
- その他(SNS・コミュニケーションサービス) 大至急お助け下さい。マストドンの或るインスタンスに登録したいのですが、ユーザー名で半角英数とアンダー 1 2023/08/25 10:33
- その他(ソフトウェア) Figma 1 2023/06/23 14:22
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/05/21 02:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
生成したインスタンスを削除す...
-
複数の変数を宣言する時、同時...
-
private static という変数の修飾
-
変数名の付け方
-
インスタンス参照でアクセスで...
-
Objective-C グローバル変数 値...
-
C#において、同じインスタンス...
-
VB.NET getとsetの概念がわかり...
-
CakePHP 1.3 の $uses は?
-
C# インスタンスの破棄
-
参照渡し
-
フィールドでのnewとコンストラ...
-
vb.netでFAXを送信する方法
-
プログラムに詳しい方ご指導お...
-
String a = "a"; と String b =...
-
objective-cで分かりにくい所教...
-
「インスタンス」の意味をわか...
-
オブジェクト参照がオブジェク...
-
オブジェクト指向プログラミン...
-
エクセルVBAで、条件に一致する...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
変数名の付け方
-
インスタンス参照でアクセスで...
-
複数の変数を宣言する時、同時...
-
private static という変数の修飾
-
VB.NET getとsetの概念がわかり...
-
C#において、同じインスタンス...
-
生成したインスタンスを削除す...
-
C# インスタンスの破棄
-
newしないインスタンス?実体化...
-
SQLを連続発行する時の正しい(?...
-
「インスタンス」の意味をわか...
-
文字列を日付に変換でParseExce...
-
変数の参照でエラーが出てしま...
-
フォームの存在をチェックする方法
-
javaのクラスの作り方、エラー...
-
オブジェクト参照がオブジェク...
-
String a = "a"; と String b =...
-
エクセル(複数インスタンス)...
-
C#「オブジェクト参照が必要で...
-
他のファイルの変数参照
おすすめ情報