Java SetterとGetterについて

このQ&Aのポイント
  • JavaのSetterとGetterについてご質問いただきました。データをセットしたファイルとは別のファイルからゲットする方法についてお教えします。
  • A.javaでセットした値をB.javaでゲットする方法を紹介します。
  • Dataクラスを作成し、mojiDataというプライベートなメンバ変数を持たせます。セットするためのsetMojiDataメソッドとゲットするためのgetMojiDataメソッドを定義します。
回答を見る
  • ベストアンサー

java setterとgetterについて

データをセットしたファイルとは別のファイルからゲットしたいの ですが、できるのでしょうか? できるのでしたら、方法を教えてください。 具体的には下記のような感じです。 (かなり端折っている&あまり理解できていないので  おかしいsrcかもしれませんが、  やりたいことは、A.javaでセットした値をB.javaでゲットしたい  のです・・・。) 宜しくお願いいたします。 ■Data.java public class Data{   private String mojiData;   public Data(String _mojiData){     mojiData = _mojiData;   }   public void setMojiData(String _mojidata){     mojiData = _mojiData;   }   public void getMojiData(){     return mojiData;   } } ■A.java public class A extend JApplet{   public void init(){     Data[] data = new Data[2];     param[0] = a;     param[1] = i;     for(int i=0; i<2; i++){       data[i] = new Data("");       data[i].setMojiData(param);     }   } } ■B.java public class B extend JApplet{   String strData = new String[2];   public void ren(){     Data[] data;     for(int i=0; i<2; i++){       String strData[i] = data[i].getMojiData();     }   } }

  • Java
  • 回答数1
  • ありがとう数2

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

  • ベストアンサー
  • _ranco_
  • ベストアンサー率58% (126/214)
回答No.1

配列dataをAアプレットのpublicメソッドから取れるようにしておき、Bアプレットの中でAアプレットにアクセスすればいいでしょう。 そういうこととちゃう??

mamappi82
質問者

お礼

回答ありがとうございました。 お礼が遅くなって申し訳ございませんでした。 _ranco_様の回答と似ている(多分ほとんど同じ感じだと思う・・・)のですが、 Bの中で配列dataをpublicな変数として宣言して、 Aの中でBのインスタンスを作成(配列data以外の事で必要だったので)し、 Aの中で  B.data[i] = "testデータ"; のようにすることで、 解決しました。 ありがとうございました。

関連するQ&A

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

    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
  • javaのlengthに対して質問です

    javaのlengthに対して質問です public class Gauss { public static void main(String[] args){ int[] ia = new int[101]; for (int i = 0 ; i<ia.length;i++); } } 今の場合 ia.lengthはどれくらいの長さですか? ia だから2?

    • ベストアンサー
    • Java
  • Javaのプログラムについて教えてください!

    //Sub.java package prac; class Super{ public void A(){ String address = new String("Osaka"); System.out.println(address); } } public class Sub extends Super{ public void A(){ String address = new String("Kyoto"); System.out.println(address); } public int A(String tmp){ return Integer.parseInt(tmp); } } このプログラムを他のクラスのmain関数から呼び出す場合どのようなコードになりますか?また、間違えているところがあれば合わせて教えてください。

    • ベストアンサー
    • Java
  • javaプログラムの作り方

    class HTMLparam extends IO_Data_D { String s; int max_lean; Applet a; HTMLparam(int _max_lean, String _s, Applet _a) { max_lean = _max_lean; s = _s ; a = _a;} //-------------------------------------- Object getParam() { String param; char separated[][]; for(int i=0; i<max_lean; i++) { param = a.getParameter( s + (i+1) ); for(int j=0; j<max_lean; j++) { if(param != null ){ separated[][] = new char [max_lean][ param.length() ]; ???????????????????????????; } } return ; } } すごい初歩的な質問で申し訳ありません。いまいちキャストの仕方がよくわかっていません。質問というのは、param = a.getParameter( s + (i+1) );でparamに文字列が入ります。max_leanの行数文の文字列を文字配列にして文字を管理し、オブジェクトでリターンしたいのですが、どのように作っていいのかわかりません。教えていただけないでしょうか?

  • Javaのプログラムについて至急教えてください!

    //Sub.java class Super{ public void A(){} } class Sub extends Super{ /* (1) */ } このプログラムの(1)に入るものを下から2つ選んで他のクラスのメインメソッドから呼び出すのですがどうやってもわかりません。わかる方教えてください! public void A(){} public String A(){ return "pool";} public int A(String str){return Integer.parseInt(st);} public int A(){return 3;} public Object A(){return new Object();}

    • ベストアンサー
    • Java
  • Javaマウスイベント 応答速度の改善したい。。

    初心者です。 下記のプログラムを実行すると、 連続してクリックしたときに、何回か応答できない 場合があります。 解決策があるようでしtら、教えてください。 import java.awt.Color; import java.awt.Graphics; import java.awt.event.MouseEvent; import java.awt.Toolkit; import java.lang.String; import javax.swing.JFrame; import javax.swing.JPanel; public class jjj extends JFrame { public jjj() { add(new DrawPanel()); } public static void main(String[] A00) { Toolkit.getDefaultToolkit().setDynamicLayout(true); JFrame L00 = new jjj(); L00.setTitle("マウスの座標を表示"); L00.setDefaultCloseOperation(EXIT_ON_CLOSE); L00.setBackground(Color.white); L00.setSize(1920, 1200); L00.setVisible(true); } } class DrawPanel extends JPanel implements MouseListener { int I00 = 10; int I01 = 10; int w = 10; int h = 10; int a = 100; int b = 100; public DrawPanel() { setBackground(Color.white); addMouseListener(this); } public void paintComponent(Graphics g) { super.paintComponent(g); String L00 = String.format("(%d, %d)", I00, I01); g.drawString(L00, I00, I01); g.drawLine(0,0,I00, I01); g.drawRect(I00-a/2, I01-b/2, a, b); } public void mouseMoved(MouseEvent A00) { I00 = A00.getX(); I01 = A00.getY(); repaint(); } public void mouseDragged(MouseEvent A00) { I00 = A00.getX(); I01 = A00.getY(); int w = I00; int h = I01; repaint(); } public void mousePressed(MouseEvent A00) { } public void mouseReleased(MouseEvent A00) { } @Override public void mouseClicked(MouseEvent A00) { I00 = A00.getX(); I01 = A00.getY(); repaint(); } @Override public void mouseEntered(MouseEvent arg0) { } @Override public void mouseExited(MouseEvent arg0) { } }

    • ベストアンサー
    • Java
  • [javaプログラムについて] うまく動きません。

    import java.*; class Test { void main() { Th th1 = new Th("01スレッド"); Th th2 = new Th("02スレッド"); th1.start(); th2.start(); } } class Th extends Thread { void run(String pri) { for (int i=0;i<5;i++) { System.out.println(pri + " : " + i); } } } スレッドの使い方がいまいちよく分かりません。 どこが間違っているのか教えてください。 宜しくお願い致します。

    • ベストアンサー
    • Java
  • Javaのオーバーロードを使った問題

    class Book{ String title, size; int price; Book(String title, String size, int price){ this.title = title; this.size = size; this.price = price; } public String info(){ return title + " " + size; } public String info(String title){ return title + " " + size + " " + price +"円"; } public int info(String title, String size){ return price; } } ________________________________________________________ class Book_test{ public static void main(String[] args){ String[] title = {"図鑑","参考書","雑誌","地図"}; String[] size = {"B4", "A5", "A4", "A3"}; int[] price={4500, 1800, 600, 1400}; Book[] b = new Book[4]; for(int i=0; i<b.length; i++){ b[i] = ****; } for(int i=0; i<b.length; i++){ System.out.println(***); } for(int i=0; i<b.length; i++){ System.out.println(***); } for(int i=0; i<b.length; i++){ System.out.println(***); } } } 実行結果は、以下の通り 図鑑 B4 参考書 A5 雑誌 A4 地図 A3 図鑑 B4 4500円 参考書 A5 1800円 雑誌 A4 600円 地図 A3 1400円 4500 1800 600 1400 このように表示するために、javaのソースコードを書かなくてはならないのですが、***の部分に何を入れれば良いのか分かりません。 特に、for文の部分です。 classが苦手なので分かりやすく教えていただけると幸いです。

    • ベストアンサー
    • Java
  • 空白にはなにを入れればいいのでしょうか?

    [A君,50,60,70] -> 180 [Bさん,90,70,80] -> 240 [C君,30,40,45] -> 115 という3教科の試験の合計点を学生毎に表示するものですが、<?>の部分になんと書けばいいのかわかりません。。教えてください。 import java.lang.*; import java.io.*; import java.util.*; class Student { private String name; private int[] score; public Student (String name, int[] score){ this.name = name; this.score = score; } public Student(String name, int x, int y, int z){ this.score = new int[3]; } public String toString(){ String s = "[" + name; for (int i=0; i < score.length; i++){ s += “ , “ + score[1]; } s += "]"; return s; } public int total(){ int sum = 0; for (int i=0; i<<?>; i++){ <?> } return sum; } } class StudentTest { public static void main(String[] args){ Student[] data = { new Student("A君",50,60,70), new Student("Bさん",90,70,80), new Student("C君",30,40,45), }; for (int i=0; i<data.length; i++){ System.out.println("" + data[i] + "\t-> " + data[i].total()); } } }  

    • ベストアンサー
    • Java
  • javaについて質問です。

    初めまして、情報系の大学に進学して課題を出されました、この接続クラスを使って全件表示させる、4件インサートする、2から4行目までを取得する実行クラスを作りなさいとの事で全く分からなくて悩 んでおります、どうかご教授お願いいたします。 mysqlにはすでにIDNO(3) Name Addressが 入ってる状態を想定して答えなさいとの事。。 import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.util.ArrayList; public class CatWalkhitomin{ //** データベースとのコネクションを作る変数 */ private Connection co; String url = "jdbc:mysql://localhost/reportdb?useUnicode=true&characterEncoding=SJIS"; String user = "root"; String password = "hitomin1995"; /** * DBに接続、トランザクション開始 */ public void connect() throws Exception{ Class.forName("com.mysql.jdbc.Driver"); co = DriverManager.getConnection(url, user, password); co.setAutoCommit(false); return; } public void disconnect() throws Exception{ co.close(); return; } public void commit() throws Exception{ co.commit(); return; } public void rollback() throws Exception{ co.rollback(); return; } /** * Insert、Update、Deleteを実行 * @param sql SQL文 * @return iCount 更新件数 */ public int updateExec(String sql) throws Exception{ PreparedStatement ps = co.prepareStatement(sql); //executeUpdateメソッドでsql文を実行し戻り値の更新件数をiCountに代入 int iCount = ps.executeUpdate();       return iCount; } /** * Select文を実行 取得した値を戻す * @param sql SQL文 * @return strData 取得した値 */ public String[][] select(String sql) throws Exception{       //sql文を実行する為のインスタンスをsql文select count(*) from numatatableで生成。 PreparedStatement ps = co.prepareStatement("select count(*) from numatatable"); //executeQuerymメソッドでsql文を実行。読み込んだデータの中身をrsに代入 ResultSet rs = ps.executeQuery(); rs.next(); //next()で行データを読み込む準備 int rowCount = rs.getInt(1) ;//rowCountへnumatatableの行数を代入 //selectExecメソッドの第二引数を0、第三引数をrowCountとして全ての行データを二次元関数にしてreturn return selectExec(sql, 0, rowCount); } /** * Select文を実行 取得した値を戻す * @param sql : SQL文 <br> fromIndex : 取得開始行 * @return strData : 取得した値 */ public String[][] select(String sql, int fromIndex) throws Exception{ PreparedStatement ps = co.prepareStatement("select count(*) from numatatable"); ResultSet rs = ps.executeQuery(); rs.next(); //next()で行データを読み込む準備 int rowCount = rs.getInt(1); return selectExec(sql, fromIndex, rowCount); } /** * Select文を実行 取得した値を戻す * @param sql : SQL文 <br> fromIndex : 取得開始行 <br> toIndex : 取得終了行 * @return strData : 取得した値 */ public String[][] select(String sql, int fromIndex, int toIndex) throws Exception{ PreparedStatement ps = co.prepareStatement(sql); ResultSet rs = ps.executeQuery(); ResultSetMetaData met = rs.getMetaData(); //テーブルの列の数を取得して変数coulumに代入 int coulum = met.getColumnCount(); // 1行分ずつ全てのデータを格納する為のArrayList ArrayList<String[]> al = new ArrayList<String[]>(); while(rs.next()){ //rsの全てのデータを読み込むまでループ //getRow()で現在の行を取得し、メソッドの第二引数の取得開始行以上かつ、第三引数以下であればtrue if(rs.getRow() >= fromIndex && rs.getRow() <= toIndex){ String[] str = new String[coulum]; //1行分のデータをString[]に格納 for(int i = 0; i < coulum; i++){ str[i] = rs.getString(i + 1); } al.add(str); //ArrayListにデータを1行分づつadd } } // 読み込んだ全てのデータが入っているArrayListを二次元配列に変換 String[][] strData = al.toArray(new String[al.size()][]); return strData; //変換した上記のデータをreturn } }

    • ベストアンサー
    • Java

専門家に質問してみよう