• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Javaでの構造体の構造体のクラス宣言の仕方)

Javaでの構造体のクラス宣言の仕方

このQ&Aのポイント
  • Javaでの構造体のクラス宣言の仕方についてわかりません。複数のデータを一つのクラスで管理したいのですが、効果的な書き方がわかりません。
  • Javaでは、一つの*.javaファイルにはpublic宣言は一つしかできないため、複数のデータを管理するためにはどのような書き方をするべきか教えていただけませんか?
  • 例えば、<ROOT_A>---<GroopA>---<0, 私, 154cm, 50kg>といった複雑なデータを一つのクラスで管理する方法を知りたいです。Javaの構造体のクラス宣言の仕方を教えてください。

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

  • ベストアンサー
noname#131656
noname#131656
回答No.2

私だったらROOT object, Groop object, HumanData object をそれぞれ別々にクラスを用意し、それぞれのクラスでList にして関連付けしますね。ROOT object は別に作ったコントロールクラスにして管理します。 昔はHashMap でどのようにでも実装できたものですが、今はそれってお奨めじゃないですしねぇ。 ところでコントロールクラスで一括管理するだけであれば、内部のデータ構造(ツリー)はXML(DOM)で管理するというのもアリかもしれませんねぇ。この場合無駄にクラスを作る必要はありませんね。ただ手間暇はやっぱりかかると思うけど(処理も遅くなる)。 全然参考にならない意見ですが、思うところを書かせてもらいました。

bonbontarou
質問者

お礼

XML(DOM)で一括管理できるのですか? 時間があれば試してみたいと思います

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

内部クラス?

bonbontarou
質問者

補足

返答有難うございます。 内部クラスを使うのはいいと思うのですが、 効率のいい書き方わかりますか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • クラス構造をネストしたの宣言

    クラスA クラスB を使い、お互いに関連した構造にしたいのですが、宣言に困り質問させていただきました。 A.cpp ファイルは class A{ B b; }; のように、クラスB を含んだ状態です。クラスBもクラスAを含んだ状態です。 ここで、オブジェクトファイルを作成すべく、 $g++ -c A.cpp とすると、クラスBが宣言されておらず怒られてしまいます。 クラスBを先に宣言したり、ヘッダーファイルを作成しても、クラスBでもクラスAのオブジェクトを使っているので、やはり"定義されていない"とおこられてしまします。 C言語の関数を入籠にした場合は、プロトタイプを使用して問題を回避しましたが、クラスの場合でこれを解決する手段がわからず質問させていただきました。 どうかご教授ください。

  • 構造体の宣言

    下記のように構造体の宣言をした所、 struct B_PARAM test; 「`test' の領域サイズがわかりません」というエラーになってしまいました。この構造体を宣言し、値を入れていこうとしています。 ヘッダファイルに構造体の形は定義してあるのですが、 構造体の中に構造体があるからでしょうか? またこの構造体を正しく宣言するにはどうすればいいのでしょうか?

  • 構造体とクラスの違い

    お世話になります。 先日、C(C++もかな?)のベテランのプログラマの方が「構造体とクラスはまったく違うものだ」ときっぱり言い切っていらっしゃいました。私は、構造体にメソッドが加わったものがクラスだ、くらいな認識で、まったく違うものというよりはかなり近しい概念だと思っていたので少々驚いた次第です。 疑問が残りましたので、インターネットでいろいろ検索してみたのですが、おしなべて「構造体とクラスには共通点が多い」と説明されており、どうしても「まったく違うもの」と解釈できる文献を見つけることができませんでした。 果たして「構造体とクラスはまったく違うもの」なのでしょうか?

  • クラス内の構造体の実体化とアクセス方法が・・

    クラス内の構造体の実体化とアクセス方法が解らなくて困っていまし。 ヘッダーで class data { public: struct SET_A { int time; char name[24]; }; }; と宣言したクラス内の構造体を使いたくて data::SET_A dataseta; dataseta.time = 1; などとしても構文エラーになってしまいます。 クラス内の構造体はどう実体化してアクセスしたりすれば良いのでしょうか?

  • C言語の構造体について

    構造体を勉強している所なのですが変数をまとめられるのは分かりましたがどのサイトを見てもいまいち使い所がわかりません。 struct test { int a; int b; int c; }testtest; testtest.a = 0; testtest.b = 1; testtest.c = 2; 例えば上記のような構造体を作成するとします。 私の見たサイトでは構造体で宣言はまとめられても初期化する事はできないと書いてありました。 下記のように変数を普通に宣言&初期化するよりも手間がかかってしまっていると思うのですが私の考えが及ばない何か別の使い方または処理が早くなったりする事があるのでしょうか?。 int a = 0; int b = 1; int c = 2;

  • 構造体の宣言でエラーが出ます。

    c言語を勉強中の初心者です。 プログラムで、struct structB; と宣言をしたのですがエラーになります。 このように、構造体にお互いの構造体を、要素にすることはできないのでしょうか。 どうすればエラーが出なくなるのでしょうか。 どなたかご教授ください ○プログラムリスト #include <stdio.h> struct structB; struct structA { double a; struct structB b; /* エラー */ }; struct structB { int c; struct structA *d; }; int main(void) { struct structA x = {3.2, {3, NULL}}; struct structB y = {2, NULL}; printf("%lf\n", x.a); printf("%d\n", y.c); return 0; } ○実行例 C:\>cl.exe mytest.c Microsoft(R) 32-bit C/C++ Standard Compiler Version 13.10.3077 for 80x86 Copyright (C) Microsoft Corporation 1984-2002. All rights reserved. mytest.c mytest.c(7) : error C2079: 'b' が 未定義の struct 'structB' で使用しています。 mytest.c(18) : error C2078: 初期化子の数が多すぎます。 C:\> ○実行環境 Microsoft WindowsXP Professional SP2 Microsoft Visual C++ .NET Standard Version 2003

  • 構造体の宣言方法について

    構造体の宣言で ヘッダーファイルに struct RAM rom_AAA[20] を宣言 Cソースファイル(上記のヘッダーファイルをインクルードする)に struct RAM { struct BBB *CCC } を宣言 とした時 rom_AAA[20]と*CCC(BBBアドレス)はリンクしてる状態になるのでしょうか? 構造体の一部の定数テーブルを参照するために 間単にポインタ使ってグルグル回したいのですが、同じものをアクセスしてる事にならないでしょうか?

  • package宣言のディレクトリ構造

    はじめまして、Java初心者な質問です。 package宣言するときの、ディレクトリの構造がどうあるべきか?という質問なのですが、 例えばカレントディレクトリが /home/test/java にあるとして ----------// ClassA.java //----------- package a.b; public class ClassA { /** コンストラクタ */ public ClassA() { } } とした場合、 ClassA.javaファイルとClassA.classはどこに保存されるべきなのでしょうか? 参考書などによると 「aディレクトリ内のbディレクトリ」と書いてあるのですが、どこから見てのaディレクトリ内のbディレクトリなのでしょうか? この場合だと、/home/test/java/a/b/ClassA.java という事なのでしょうか、、? それだったらpackage宣言が package home.test.java.a.b; になるような気がして、困惑しています。 よろしくお願いします><

    • ベストアンサー
    • Java
  • 条件によって構造体のリスト構造を変えたい

    こんにちは。 C(C++)で構造体を使っているのですが、まだまだ未熟で使い方が良く分かりません。以下のことを実施したいのですが、やり方をどなたかご教授頂けませんでしょうか。よろしくお願いします。 条件によって構造体のリスト構造を変えたいのです。 例えば、 条件1の場合は 構造体a→構造体b 条件2の場合は、 構造体a→構造体c 上記のようにです。そして構造体のルートから参照先をたどっていくことで、配下の構造体の値を取得したいのです。 文法上許されないようですが、イメージとしては、 struct a aa; aa.c->b.aa ということをしたいのです。よろしくお願いします。 struct a{ char a; char b; struct c; : }; struct b{ char aa; : }; struct c{ : : };

  • 基本クラスと派生クラスの宣言順序

    C++のクラスの宣言は、基本クラスから先に宣言しないといけないのでしょうか。 例. 次の順で宣言するとエラーになる。 class A : public B { public: private: } calss B { public: private: }