PGの良い使い方とメリット、Swingを使った例について教えてください

このQ&Aのポイント
  • PGの良い使い方やメリット、Swingを使った例について教えてください
  • 具体的なコード例を交えながら、PGの活用方法と優れた点について教えてください
  • Swingを利用したPGの使い方とその利点について詳しく教えてください
回答を見る
  • ベストアンサー

このPGの良い使い方を教えて下さい。

以下のコードなのですが、使い方、メリットなど、どのような時に使うものなのか、教えていただければ幸いです。また現在、swingをよくつかっているのですが、そのような例もあればお願いいたします。 class Axis { int a; int b; } class HowClass { void howMethod() { Axis[] dim = new Axis[3]; for(int i=0; i<3; i++) dim[i] = new Axis(); dim[0].a=1; dim[1].a=2; dim[2].a=3; dim[0].b=10; dim[1].b=20; } }

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

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

  • ベストアンサー
  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.2

こんにちは。 例えばAxisクラスが何か物体のx座標とy座標を持つクラスとして、 その物体をを10個作って画面に配置したい時なんか、こんな感じで作ったりしませんでしょうか。 使い方、メリット、どのようにというよりはオブジェクト指向的なお話じゃないかなと思います。 Swingで例を挙げるとすると例えばAxisクラスはテキストフィールドのクラスとして配置場所x,yを持っている。 10個のテキストフィールドを生成して、配置場所をセットする。 うまく説明できなくてすみません。

jpenpal
質問者

お礼

回答ありがとうございます。そしてご返答が遅れてしまい失礼しました。 少し、私の質問の仕方がおかしいとも思っていたのですが、私としましても 上手に言えないものでして; でも、代弁していただいたような感じととらえています。 なんかしっくりきました!

その他の回答 (2)

  • root139
  • ベストアンサー率60% (488/809)
回答No.3

> 「配列.変数」という組み合わせに何ができるのか、ずっと考えていましたが、 ? もしかして、HowClass や howMethod を他のコードからどの様に使うのかという話ではなく、どの様な場合に「dim[0].a = 1;」の様な書き方をするのかという質問でしょうか? 「配列[添え字].変数」の部分だけを考えるのであれば、配列の任意の要素のフィールドに対して設定したり値を参照したり出来ますよね。 まあ、カプセル化されていない事の是非は有りますが・・・。 #2さんが挙げられている様な場合に、こういったコードが書かれることはあるでしょうね。

jpenpal
質問者

お礼

回答ありがとうございます。まずはご返事がおくれ、すみません。 #2さんの回答も含め、参考になりました。ぼんやりではあるのですが、 間違いなくプラスになりました!

  • root139
  • ベストアンサー率60% (488/809)
回答No.1

実用的な使い道の有るコードとは思えません。 あえて言うなら、クラスの配列を説明する際のサンプルコードとして使えるぐらいでしょうか。 howMethod では配列を作ったり要素を設定したりしていますが、戻り値も無く、ファイルやコンソール等へのIOも無いので、メソッドの外部に何ら影響を与えません。

jpenpal
質問者

お礼

回答ありがとうございます。 「配列.変数」という組み合わせに何ができるのか、ずっと考えていましたが、 たしかに説明用な感じはしているコードかもしれません。

関連するQ&A

  • NoSuchMethodErrorが解決できません。

    実行時エラーNoSuchMethodErrorが出て困っています。 どこを修正すればいいのでしょうか? class A implements Runnable{ int x; int y; public void run(){ for(int i = 0;i < 100;i++){ x++; y++; System.out.println("x="+x+"y="+y); } } } class B{ public static void main(String args[]){ new Thread(new A()).start(); new Thread(new A()).start(); } }

    • ベストアンサー
    • Java
  • arraylistの呼び出し

    A.classでB.classのarraylistを作成し Cクラスのオブジェクトを何個もarraylistに保存しているんですけど そのarraylistをbクラスで使いたいんですけど うまくいきません 例とエラー文を載せますので、教えてください 例 public class A{ int i=0; int b=0; public static void main(String[] args){ ArrayList<B> strs=new ArrayList<B>(0); for(b=0;b<30;b++){ B b =new B(); //ここは何回も作ってます strs.add(b,i);   i++; } } public ArrayList get(){ return strs; } } class C { A a; static count=0; public void syutoku(SimpleTrajectoryViewer si){ this.a=a; } public void c(){ B b=new B(); ArrayList b =a.get(); B p=b.get(count); count ++; } } エラー文はクラスの ArrayList b =a.get();の部分で 互換性のない型 期待値  B 検出値     object と出ています 解決策教えてください 全てのプログラムを書いてるわけではありませんので おそらく関係のあるだろうってところを書きましたので わかりづらかったらすみません

  • 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
  • 実行の順番を教えてください。

    現在JAVAの学習をおこなっていて、参考書で勉強しています。 しかし、以下の3つのソースコードはどの順番で実行されているか理解できておりません。 すみませんが、実行の順番を教えて頂けないでしょうか。 実行の順に数字を振ったりしていただけますと特に嬉しいです。 お願いします。 ※サンプル1 class testA{ testB b; testA(){ b=new testB(this); } } class testB{ testA a; testB(testA a){ this.a=a; } } class testAll{ public static void main(String args[]){ new testAll().banana(); //ソースコード } void banana(){ testA test = new testA(); } } ※サンプル2 public class A{ public static void apple(Integer i){ int ta =i.intValue(); ta+=3 ; i=new Integer(ta); } public static void main(String args[]){ Integer i = new Integer (0); apple(i); System.out.println(i.intValue()); } } ※サンプル3 public class Test{ public static void main (String args[]){ class orange{ public int i =9; } Object o=(Object)new orange(); orange orange = (orange)o; System.out.println("i="+orange.i); } }

    • ベストアンサー
    • Java
  • 配列のコピーをして値を返したいが

    //配列のコピーをして値を返したい import java.util.*; public class Test7_22 { static int[] arrayClone(int[] a){ int[] b = new int[a.length]; for(int i =0;i>a.length;i++) b[i] = a[i];//ここで代入されるはず return b; } public static void main(String[]args){ Scanner std = new Scanner(System.in); System.out.print("要素数:"); int n = std.nextInt(); int[] a = new int[n]; for(int i=0;i<n;i++){ System.out.print("a["+i+"]="); a[i] = std.nextInt(); } int[] x = arrayClone(a); for(int i=0;i<a.length;i++) System.out.println("x["+i+"]="+x[i]); } } //コンパイルするとb[0] = 0になる

    • ベストアンサー
    • Java
  • arraycopy コンパイルエラー

    javaの勉強をしているのですが arraycopy()を使ったプログラムでエラーが出てしまいます。 class Ex97{ public static void main(String args[]){ int []a = new int[10]; int []b = new int[5]; for(int i=0; i<10; i++){ a[i] = (int)(Math.random()*10); } System.arraycopy(a, 2, b, 0, 5); for(int i=0; 0<a.length-1; i++){ System.out.println(a[i]); } System.out.println(""); for(int i=0; 0<b.length; i++){ System.out.println(b[i]); } } } /*メッセージ Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10 at Ex32.main(Ex32.java:13) */ このプログラムはaの3番目の要素から5つ分の内容をbへコピーする というものです。 ご回答よろしくお願いします。

    • ベストアンサー
    • Java
  • ソースコードの流れについて

    下記ソースコードの流れを詳しく解説していただけませんか。表示結果が理解できません。 class Th extends Thread{ public void run(){ for(int i = 0; i < 2; i++)System.out.print(" "+ Main4_1_49.count + i); } } public class Main4_1_49{ static int count = 0; public static void main(String[] args){ Th[] tr = new Th[6]; for(int i = 0; i < 5; i++){ count++; tr[i] = new Th(); tr[i].setPriority(i * 2 + 1 ); tr[i].start(); } } }

  • Randomクラスを使い同じ値をもつことがないように

    するには? サンプルコードをどう改良したらいいですか 例えば{1,3,5,5,3,2}の連続した5とならないようにするには? import java.util.*; class Sample6_9{ public static void main(String args[]){ Scanner std = new Scanner(System.in); Random rand = new Random(); System.out.print("要素数:"); int n = std.nextInt(); int[]a = new int[n]; for(int i=0;i<n;i++){ a[i] = 1+rand.nextInt(10); System.out.println("a["+i+"]="+a[i]); } } }

  • java

    次のコード中の括弧内で下に示す11通りの各コードを実行した場合の実行画面を正確に答えよ。 class A{ public void func1(){System.out.println("A1");} public void func2(){System.out.println("A2");} } class B extends A{ public void func1(){System.out.println("B");} } class C{ public int x=0, y=1; } class D extends C{ public int x=2; public void func1(int x){System.out.println(x);} public void func2(int x){System.out.println(this.x);} public void func3(int x){System.out.println(super.x);} public void func4(int x){System.out.println(this.y);} public void func5(int x){System.out.println(super.y);} } class E{ public void func1(int n){ try{ System.out.println("E1"); int[] ary=new int[n]; System.out.println("E2"); }catch(NegativeArraySizeException e){ System.out.println("E3"); }finally{ System.out.println("E4"); } } } (1) A a=new A(); a.func1(); (2) A a=new B(); a.func1(); (3) B b=new B(); b.func1(); (4) B b=new B(); b.func2(); (5) D d=new D(); d.func1(3); (6) D d=new D(); d.func2(3); (7) D d=new D(); d.func3(3); (8) D d=new D(); d.func4(3); (9) D d=new D(); d.func5(3); (10) E e=new E(); e.func1(5); (11) E e=new E(); e.func1(-2); (1) A1 (2)B (3)B (4) A2 (5) 3 (6) 2 (7) 0 (8) 1 (9) 1 (10) E1E2E4(11) E1E3E4 と答えになるんですがなぜこうなるのかわかりません。教えてください

    • ベストアンサー
    • Java
  • C++ オブジェクトポインタのメリット

    以下の例のように、あるオブジェクトが別のオブジェクトのメンバ関数にアクセスする時、ポインタを使うメリットはあるのでしょうか? ご助言いただきたいです。 よろしくお願いします。 ↓例 オブジェクトAのaaa関数からオブジェクトBのbbb関数にアクセスしてHello!を表示する。 #include <stdio.h> class B { public: void bbb(void); }; class A { public: void SetBObj(B* objB); void aaa(void); private: B* mem_objB; }; int main(void) { A* objA = new A(); B* objB = new B(); objA->SetBObj(objB); objA->aaa(); delete new A(); delete new B(); return 0; } void A::SetBObj(B* objB) { mem_objB = objB; } void A::aaa(void) { mem_objB->bbb(); } void B::bbb(void) { printf("Hello!\n"); }

専門家に質問してみよう