• ベストアンサー

セッターとゲッター

Java初心者です。 セッターとゲッターの違いがわからないので質問します。 あるクラスの配列に値を格納して、もうひとつのクラスでそれを取得するにはセッターとゲッターのどちらに記述すればいいですか? また、ソースの書き方としてはどのように記述すればいいでしょうか?お願い致します。

  • Java
  • 回答数5
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • PED02744
  • ベストアンサー率40% (157/390)
回答No.5

コンストラクタはどのような処理なのか。 http://www.nextindex.net/java/constructor.html 簡単に言えば、クラスの初期化です。

その他の回答 (4)

  • kscKane
  • ベストアンサー率62% (18/29)
回答No.4

http://www.nextindex.net/java/memberVar.html setterとgetterの説明が「メンバー変数の修飾子」という見出しのあたりから説明されています。 データをセットするクラスにsetterを、データを取得するクラスにgetterを作成するわけではありません。 データクラスにsetterとgetterを定義して、 値をセットするクラスはデータクラスのsetterを、 値を取得するクラスでデータクラスのgetterを利用します。

  • PED02744
  • ベストアンサー率40% (157/390)
回答No.3

ああ。。。いま、わかりました。 getter/setter は「クラス」ではありません。クラス内の各メソッド(関数)です。 もし、授業か開発作業の中で「セッタークラス」「ゲッタークラス」等という言葉がでてきたのだとしたら、 それは、先生(あるいは先輩社員)が、作って欲しいプログラムそのものの仕様だと思いますので、先生(先輩)に聞いて確認してください。

  • PED02744
  • ベストアンサー率40% (157/390)
回答No.2

>setterクラスはあっていると思いますが、 いいえ。あっていません。 何度も言うように、setterは voidになります。 return はいりません。 getterが 値を返すようにするのです。return が必要なのです。 public class Hoge{  // member変数  private String[] str = new String[0];  // コンストラクタ  Hoge(){  }  // getter  public String[] getStrings(){   return this.str;  }  // setter  public void setStrings(String[] str){   this.str = str;  } }

dai5719
質問者

補足

回答ありがとうございます。 getterとsetterは理解できましたが、 // コンストラクタ  Hoge(){  } ・・・はどのような処理なのでしょうか? コンストラクタの意味がわからなかったので調べてみたところ、 「クラスからインスタンスを生成する際に呼び出される部分」とありましたが、うまく理解できませんでした。

  • PED02744
  • ベストアンサー率40% (157/390)
回答No.1

>セッターとゲッターの違いがわからないので質問します。 セットするって言葉がわからない・ゲットするって言葉がわからない…ってことでしょうか? あるクラスに値を設定する(セットする)のがsetterで、あるクラスから値を取り出す(ゲットする)のがgetterです。 >あるクラスの配列に値を格納して、もうひとつのクラスでそれを取得する 上の回答で答えになっているとおもうんですが、 『あるクラスに配列を格納する』ならばsetterですが、 「あるクラスの配列に値を格納する」・・・というのは、ロジックが必要なので、仕様次第です。 「もうひとつのクラスでそれを取得する」・・・というのは、書き換えると 『もう一つのクラスで、あるクラスから値を取得する』ということですので、getメソッドで値を取り出すことになりますね。

dai5719
質問者

補足

setterクラスではこのように記述してあるとします。 public class KanaHenkanData { //全角を格納するメソッド public char[] setZenkaraHan(char[] haze) { //(全角)ア、イ、ウ、エ、オ・・・・ char[] zenkaku = {'ア','イ','ウ','エ','オ'}; //zenkakuを返す return zenkaku; } //半角を格納するメソッド public String[] setHankaraZen(String[] zeha) { //(半角)ア、イ、ウ、エ、オ・・・・ String[] hankaku = {"ア","イ","ウ","エ","オ"}; return hankaku; } } setterクラスはあっていると思いますが、これをgetterクラスで取り出すのがうまくいきません。

関連するQ&A

  • getterとsetterについて

    プログラム初心者です。 いきなりC#から勉強するのは難度が高いかもしれませんが、 克服しないといけません。 分からないことがあります。 教えていただけますでしょうか。 例えばC#のプログラミングで使用する getterとsetterについて初心者でも分かりやすく教えていただけないでしょうか。 "C#では変数に「プロパティ」を作ることができます…"とか "フィールド(クラスのインスタンス変数)というのは、クラスの内部で持っている値です。 この内部の値に直接外部からアクセスさせてはいけません。 カプセル化では、フィールドへの読み書きは、必ずそのクラスのコードを経由して行います。 つまり、間接的に読み書きします。"とか書かれているものがありました。 この値はいかなるどういう値で、それを取得したい場合に使うのか 分かりません。正確にイメージできません。 あと以下の例文があったのですが、 valueというのはもともとどういう値が入っていて代入しているのですか? 宜しくお願いします。 public class Person { private string name; public string Name; { get { return this.name; } set { this.name = value; } } }

  • サブクラスでセッターを呼び出す

    java初心者です。 以下のようなソースコードで、コンパイルしたらエラーが出ました。 サブクラスのsetterのところでエラーが出たんですが、 サブクラスでスーパークラスのメソッドは呼び出せないんでしょうか? それとも他に間違いがあるんでしょうか? class rensyu { private int x; rensyu(){ x=this.x; } int getX(){ return x; } void setX(int m){ this.x = m; } } class rensyu2 extends rensyu{ private rensyu[] A; rensyu2(){ A = new rensyu[100]; } int getter(int i){ return A[i].getX(); } void setter(int x,int i){ A[i].setX(x); } } class rensyuTester{ public static void main(String[] args) { rensyu2 A = new rensyu2(); A.setter(1,0); A.setter(2,1); System.out.println(A.getter(0) +" "+ A.getter(1)); } }

    • ベストアンサー
    • Java
  • インスタンス変数とクラス変数の違い

    1つのクラスオブジェクト内のインスタンス全てで共有できる クラス変数 @@a と、 同じインスタンス内であればメソッドの定義を越えてその値を 参照したり、変更したりできるインスタンス変数 @a のスコープの違いをお手すきでしたらご指導願えませんか? あとクラス変数にはセッターやゲッター等のアクセスメソッドを 設定できるんですか? いろいろ知りたいです。

    • ベストアンサー
    • Ruby
  • 配列のメソッド

    配列のメソッドをセッターしてゲッターで取得したいのですがどのようにすればいいのかわかりません(--;)セッターをまず作成しましたがエラーになって出来ません・・・どなたかお願いします。 ↓以下セッターです。 public class KanaHenkanData {   //全角を格納するメソッド   public char[] setZenkaraHan(char[] haze) {     //(全角)ア、イ、ウ、エ、オ・・・・     char[] zenkaku = {'ア','イ','ウ','エ','オ'};          //zenkakuを返す     return zenkaku;   }   //半角を格納するメソッド   public void setHankaraZen(int a,String[] zeha) {     //(半角)ア、イ、ウ、エ、オ・・・・     String[] hankaku = {"ア","イ","ウ","エ","オ};     //hankakuを返す     return hankaku;   } }

    • ベストアンサー
    • Java
  • SESSION変数の2次元配列

    ソースコードに $_SESSION[’place'][1][2] と記述されていました。 記述内容を考えていたのですが $_SESSION[’place']に、[1][2]=値 の2次元配列を格納するという 考え方で間違いないでしょうか? $_SESSION[’place'][1][2] は、3次元配列( =多次元配列)ではないと、いう考え方で あっていますでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • 連想配列からの値の取り出し

    お世話様です。 タイトルにもありますが連想配列を作成した後(以下に記述例)に その配列からキーを指定して値を取得したいと思っております。 array_keys関数だと値を指定してキーを取得するみたいで うまくいきませんでした。 何かよい方法ありませんでしょうか? //配列に格納 while (条件) {   $aParaOra += array((キー) => (値)); }

    • ベストアンサー
    • PHP
  • PHPでHTMLの指定文字から指定文字までをカット

    PHP初心者です。 PHP5でURLから取得したHTMLソースの、指定文字から指定文字までを切り取って配列に格納・配列をPrintしたいと思うのですが、具体的なソースを教えてください。

    • ベストアンサー
    • PHP
  • Beanの連携(?)について質問です

    Beanの連携(?)について質問です 例えば 社員名テーブルと給与テーブルがあったとします。 社員名テーブルと給与テーブルは社員コードでつながっているとします。 社員テーブルへのデータ取得・登録・削除などを行うEmployeeBeanクラスと 給与テーブルへのデータ取得・登録・削除などを行うPaymentBeanクラスがあります。 つまりそれぞれのBeanにはセッター、ゲッター、メソッドがあるということです。 画面からは社員一覧・登録・変更・削除ができます。 給与テーブルも給与一覧・登録・変更・削除ができます。 共通するメソッド(一覧・登録・変更など)もありますが、共通しないメソッド(検索など)もあります 「社員テーブルと給与テーブルを社員コードでつなげた一覧」を表示する場合はどうすれば よいかで詰まってしまいました。 「社員テーブルと給与テーブルを社員コードでつなげた一覧」を取得するBeanクラスを 作ればできたのですが・・・・EmployeeBeanとPaymentBeanのプロパティ、セッター、ゲッターを このBeanクラスでも定義しないといけないのはなんとも芸がないといいますか… どうすればスマートなソースになるのかご指導お願いします!!

    • ベストアンサー
    • Java
  • 配列から最頻値を求めるアルゴリズム

    電子回路の初心者です。 Arduinoボードをいじっており、温度センサから温度を取得してLCDに表示しているのですが、値がコロコロと変わってしまいます。そこで取得した値を配列に一つずつ格納していき、一定個数そろったら、そこから最頻値を探してLCDを更新しようと思っています。 (例) buf[10] = 3,2,3,3,3,2,3,4,5,3 上記の場合、10個格納した時点で、最も多く格納されている3を抽出したい 配列の左端から値を1つずつ取り出して、残り9個と比較して個数をカウントすることを繰り返す方法を考えたのですが、かなり時間が掛かりそうに思えます。もっと良い方法、一般的なやり方等がありましたら教えて頂けないでしょうか?

  • 【excel VBA】 配列番地の検索

    excel2000のVBAで二次元配列を検索して、 検索条件に一致する配列の番地を取得するための、 コード記述に関する質問です。 例えば、 myarray(i,j), i=1,j=1の配列があるとして、それぞれに myarray(0,0) = 1 myarray(0,1) = 2 myarray(1,0) = 3 myarray(1,1) = 4 という値が格納されており、 配列を検索して値が4の番地(i=1,j=1)を返したい、 といった場合、どのようにすれば良いのでしょうか。 ご存知の方、是非回答お願いします。

専門家に質問してみよう