• ベストアンサー

JAVA初心者です。

複数のファイルを作成し、それぞれのファイルのメソッドを呼び出して処理を行いたいのですが、 基本となるファイルをaaa、呼び出したいファイルをbbbとしたとき、aaaでnewしてbbbの処理を呼び出すのですよね?そのときに、そのnewしたオブジェクトをつかってメソッドを呼ぶにはどう記述すればいいのでしょうか??

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

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

  • ベストアンサー
  • rinkun
  • ベストアンサー率44% (706/1571)
回答No.1

Javaの場合、基本的にファイルごとに1つのクラスを書きファイル名とクラス名を一致させます。 また通常は命名規則としてクラス名は大文字ではじめます。 それで、Aaa.javaというファイルにAaaクラスを記述してそこにmainメソッドがあり、Bbb.javaというファイルにBbbクラスを記述してfuncというメソッドがあるとしましょう。 その場合はmainメソッド内で Bbb b = new Bbb(); // Bbbのインスタンス作成 b.func(); // メソッド呼び出し といった感じでメソッドを呼び出します。

myumyu214
質問者

お礼

回答ありがとうございます☆ うまくいきましたーー!!! すごくわかりやすい説明、ありがとうございました☆

その他の回答 (1)

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.2

 うむ、まずJavaでは、ファイル単位ではなく、クラス単位に物事を進める。まぁ、パブリックなクラス名がファイル名と一致していなければならないという謎な仕様のせいで誤解を生む事もあるだろう。サンプルを用意したので、参考にして欲しい。aaa.javaとbbb.javaの2ファイルを用意していただきたい。 -bbb.java- class bbb { int count; public bbb() { count = 0; } public void countUp() { count++; } public int getCount() { return count; } } -aaa.java- public class aaa { bbb b; public aaa() { b = new bbb(); } // ←ここでbbbをnewしているね。 public void useBbb() { System.out.println(b.getCount()); // ←bbbのメソッドgetCount()を使っているね。 b.countUp(); System.out.println(b.getCount()); } public static void main(String[] args) { aaa a = new aaa(); a.useBbb(); } }

myumyu214
質問者

お礼

回答ありがとうございます。 サンプルまでつけてくださり、すごく参考になりました!! うまく処理することができました。

関連するQ&A

  • Java初心者です。例外のキャッチについて

    ■行いたこと log4jを使用してログ出力した際に、ファイルIOなどの例外が発生した場合を想定しその際に発生した例外(IOException)をキャッチして、ログ出力時にファイルIOに失敗したことを通知できるようにしたい。 ■問題 IOExceptionが発生しているようですが(下記メッセージ参照)なぜか自分のところ(プログラム)でキャッチできない。 クラスBBB メソッドbbb try { AAAクラス.メソッドaaa   ←AAAクラスのログ出力                メソッドを実行 }catch ( IOException e ) { ログ出力に失敗       ←なぜかIOExceptionを                キャッチしない。。。 } クラスAAA log = Loggerクラスのインスタンス purblic メソッドaaa throws IOException log.info("メッセージ") ←log4jのメソッドを実行 ************************************************** log4j:ERROR Failed to flush writer, java.io.IOException: 予期しないネットワークエラーが発生しました。  at java.io.FileOutputStream.writebytes(Native Method)  at java.io.FileOutputStream.write(Unknown Sorce)  at sun.nio.cs.StreamEncoder$CharsetSE.writeBytes(Unknown Sorce) 中略  at org.apache.log4j.Category.forcedLog(Category.java:372)  at org.apache.log4j.Category.info(Category.java:372)  at AAA.aaa()  at BBB.bbb() ■環境は以下のとおりです。  OS:WindowsXP  開発環境:Eclipse3.0  JAVA:J2SDK 1.4.2_06 ■疑問 なぜキャッチしてくれないか? どう対処してよいか分かりません。 どなたか教えてください。

  • オブジェクトの関連について

    クラスAAAとクラスBBBをインスタンス化し、それぞれ、aとbのオブジェクトとします。 mainメソッドから、bのbmethメソッドを呼び出し、さらに、Amethメソッドを呼び出し また、mainからもaのAmethメソッドを呼び出し可能にする方法はありませんでしょうか? まだ、Java初心者なもので説明も不十分かと思いますがよろしくお願いします。 class AAA{ void Ameth() { System.out.println("Aメソッド"); } } class BBB{ public AAA a; void bmeth(){ a.Ameth(); } } public class test{ public static void main(String arg[]) { AAA a = new AAA(); BBB b = new BBB(); b.bmeth(); a.Ameth(); } }

  • ファイルに出力する際、上書きしない(Java)

    Javaで、例えばテキストファイルに「aaa」と出力する際、 try { PrintWriter fout = new PrintWriter(new BufferedWriter( new FileWriter("tst1.txt"))); fout.println("aaa"); fout.close(); } としているのですが、このプログラムを一度実行したあと「aaa」の部分を「bbb」と書き直して再度実行した場合、 tst1.txtには、「bbb」と記されています。 つまり、上書きされたということだと思うのですが、 上書きではなくて、「aaa」の後に続けて「bbb」と表記する方法を教えていただきたいです。 うまく説明できていないと思いますが、わかりにくい点は指摘していただければ補足しますので、よろしくお願いします。

    • ベストアンサー
    • Java
  • Delphiのマルチスレッドの割り込み処理について

    Delphiのマルチスレッドの割り込み処理について教えて欲しいのですが、ファイルをスレッドオブジェクトで作成して クラス名.Execute関数内でSynchronizeメソッドを使用しています。 本にはSynchronizeメソッドは「渡したメソッドが実行され終了するまで待ちます」と書いてあり、テストプログラムを作成してもそうでした。ということはSynchronizeメソッドは普通の関数と一緒のような気がしてしまうのですが、違うのでしょうか? Procedure MyThread.Execute begin Synchronize(AAA); AAAの処理が終了するまで待機している end; Procedure TmyThread.AAA; begin 'したい処理' end;

  • 圧縮ソフトで複数のファイルを複数のZIPファイルに一括で変換するフリー

    圧縮ソフトで複数のファイルを複数のZIPファイルに一括で変換するフリーソフトは無いですか? 例えば 複数のフォルダ「aaa」「bbb」「ccc」があったとして これを一括処理で[aaa.zip][bbb.zip][ccc.zip]を作ってくれるようなもの、もしくは方法を教えてください。

  • クラスの宣言について

    Javaの初心者です。 webを探してもも良いサンプルが見つからなかったので、 詳しい方いらっしゃいましたらご教授ください。 以下、私の疑問です **************************** class AAA{ BBB bbb; void func(){ bbb = new BBB(); // コメント1 bbb.i = 10; // コメント2 } } class BBB{ int i; } **************************** お粗末なサンプルで申し訳ありません。 私の認識では、クラスAAAのfuncメソッドでコメント1の行の処理は 必須と思っていますが正しいでしょうか? それともコメント1の行はなくても、コメント2の行の処理は実行 できるのでしょうか? この「new」の必要性と理由が分からずにパニックになってます。 どなたかよろしくお願い致します。

  • アクセス初心者です。

    アクセスのフォームを作成しています。入力パターンが限られているので、コンボボックスで作成しました。コンボボックスのプロパティーでデータ⇒値集合タイプ”AAA”;”BBB”;”ccc”といれて、入力チェックをはい。リスト行数を3にして、作ったのですが、フォーム画面にしたときに、 AAA BBB CCC となっていないのです。”AAA”;”BBB”;”ccc”のまま選択リストにでてきます。なにがいけないのでしょうか??

  • bashのexportによる環境変数設定に関して教えてくださいませ。

    bashのexportによる環境変数設定に関して教えてくださいませ。 複数のファイルに記述している環境変数設定を まとめて実行したい場合はどのようにすればよいでしょうか。 例えば、 ◆hogeファイルの内容 export AAA=aaa soruce ./piyo ◆piyoファイルの内容 export BBB=bbb この状態で、 source hoge とすると、 AAA=aaaは設定されているのですが、 BBB=bbbは設定されないようです。 source の中からsource の記述はできないのでしょうか? source ./piyo 部分を ./piyo にしてもダメでした。

  • プログラミングどうしたらいいですか(JAVA)

    フィールドとして、「ナンバー」「ガソリン残量」「走行距離」「エンジンの排気量」の4つ、それらの値を表示するメソッド4つから構成されるCar2ラスを作成し、メインメソッドで2つのオブジェクトkcar と bcar を作成し、それぞれに、次の値を代入し、Car2ラスのメソッドを呼び出してそれぞれの値を表示するプログラムを作成しなさい オブジェクト名  ナンバー   ガソリン残量        走行距離   排気量 kcar        552        25.1            22000      2000 bcar        441        33.5           9940        2000

  • iphone sdkにてアプリケーションを作成するときappDeleg

    iphone sdkにてアプリケーションを作成するときappDelegateのプログラムを通してUIViewなどいろいろなBuilderの処理を行いますが、appDelegateのメソッドのオブジェクトは、なんという名前でオブジェクトの作成がされるのですか? appDelegateのオブジェクト名->UILabelなどの記述でほかのメソッドからappDelegateのインスタント変数にアクセスしたいのですが、もしよろしければ教えてください。

    • 締切済み
    • Mac