2016-04-08 6 views
0
public void setTo(String to) { 
     this.to = to; 
    } 

    public String getTo() { 
     return to; 
    } 

上記のコードは何をしますか?私のプロジェクトファイルでは、setTo関数を検索してsetTo()が見つからないので、どのように呼び出されましたか?これは?OOPの基本機能についてJava

+0

java setters/gettersとjavaBeansも検索します –

答えて

0

3つの質問があるようです。私は順番に答えます:

上記のコードは何をしますか?
これらのメソッドを使用すると、プライベート宣言されていても、クラス外のコードでクラス内の変数値toを設定および取得できます。

私のプロジェクトファイルでsetTo関数を検索しましたが、setTo()が見つかりませんでしたので、どのように呼び出されましたか?
Springでは、依存関係注入を行うためにsetterメソッドが使用されています。基本的に、これらの変数名を自動的に検索し、変数の後ろに対応するメソッドを呼び出し、名前の前に 'set'が付いたSpringライブラリにJavaがあります。
IDEはゲッターとセッターの両方を自動的に生成することができ、Spring用のセッターが必要なので、ゲッターを使用する予定がなくてもゲッターを生成する傾向があります。

これは?
thisは有効範囲内のキーワードです。
this.toは、これらのゲッター/セッターメソッドがあるクラスの一部であるtoという名前の変数を指します。 「this.」の呼び出しがで通過するものですパラメータ定義に(String to)を指します。オブジェクト指向プログラミングで

0

それがでいくつかの変数へのアクセス権を持っている他のクラスのために間違っているのない「to」あなたのプログラムは単純に大きなプログラムを書いていくうちに、あなたの変数のいくつかがあなたの知らないうちに変更される可能性があるからです。これを止めるために、クラス内の変数をプライベートにして、getterとsetterを作成します。最初のメソッドは、クラス内のプライベート変数をユーザーが望むものに設定できるセッターです。これにより、多くのエラーの発生を防ぐことができます。

this 

は、あなたがしている現在のクラスを呼び出しているキーワードである。パラメータとして渡された変数は、クラスの先頭で宣言プライベート変数と同じである場合、我々はこのを使用しますクラスの先頭にある変数を参照してください。

0

この2つの方法は、クラスのプロパティtosetter-getterです。

ソースコードではこれらのメソッドを呼び出すことはできませんが、これらのメソッドはプロジェクトで使用しているフレームワーク/サードパーティのライブラリ(JSF,Springなど)によって呼び出されます。

0

"Getters"と "Setters"は、フィールドを直接操作せずにFieldsとやりとりするように特別に設計されたメソッドです。これは「FieldEncapsulation」の代わりに、直接フィールドにアクセスする

https://en.wikipedia.org/wiki/Field_encapsulation

、あなたはそれがメソッドのアクセスと呼ばれています。コードの使用を制限することができます。つまり、取得や設定、またはその両方を許可しないことができます。

あなたはフィールド自体へのアクセス権を持っている場合は、あなたが何かを行うことができますが、フィールドのための方法を分割した場合、その後、あなたがより良いフィールドアクションを操作

  1. することができます。
  2. text.setName(name)text = "name";
  3. は()あなたのコードを使用している人によってあなたのコードの部分へのアクセスを制限書くより理解しやすいです(あなたのコードのクリーナーを作る。

コードのいくつかの作品でも使用

たとえば、getters/settersがない場合は、Apache BeanUtils.copyBean()はBeanをコピーしません。たとえば、getters/settersはフィールドではなくゲッター/セッターです。設定します。


あなたが代わりに

String setTo = "hello"; 

or 

String setTo2 = setTo; 

を言うのあなたが

setTo("hello"); 

or 

String s2 = getTo(); 

のでsetToは、String型のパラメータを必要とし、その後、取得しますを行うことができますので、何を意味するのか

public void setTo(String to) { 
     this.to = to; 
    } 

    public String getTo() { 
     return to; 
    } 

尋ね私たちの "to"フィールドString to;をパラメータの値と同じ値に設定します。

getToはフィールドを取得して返します。

人々がset/getステートメントにコードを追加する場合もありますが、その共通性はよく分かりません。

希望すると便利です。

0

これらは「に」という名前のクラスのグローバル文字列変数(またはプロパティ)のための方法はゲッターセッターです。関連するクラスは通常、非常に同じクラスです。getterおよびsetterメソッドは、関連する変数にそのまま含まれています。

private String to = ""; // or something similar 

通常、「という名前の変数がある場合:あなただけのクラスのコンストラクタの下のクラスのコードの先頭を見れば、あなたは、たとえば、String型の変数「」を見つけることができるはずです〜 'という名前の別の変数「」(ただし必ずしもそうではありません)があります。また、getterおよびsetterメソッドがクラスに含まれている可能性があります。MySpecialClass内に含まれる

MySpecialClass myClass = new MySpecialClass(); 

// Use the 'to' variable getter to retrieve its current 
// contents and place those contents into the 'toVar' variable. 
String toVar = myClass.getTo(); 

// Display the contents... 
System.out.println(toVar); 

// Set the 'to' variable within the MySpecialClass Class 
// to hold the string "I hold this now"... 
myClass.setTo("I hold this now"); 

// Use the 'to' variable getter again to retrieve its new 
// contents and place those contents into the 'toVar' variable. 
toVar = myClass.getTo(); 

// Display the contents again... 
System.out.println(toVar); 

コード:

ゲッターセッターの方法は、あなたが取得し、例えば、実行時に別のクラスからクラス内に含まれる変数のデータを変更することができます''変数を新しいデータ値と共に使用できます。 Javaクラスライブラリは、JButtonやJLabelなどの特定のプロパティを設定するのと同じように、このように処理します。