@iaojfkojgpakm (ai ueo)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

javaにおけるclassについて

学校の課題でjavaでプログラムを書いています。
そこで質問なのですが、AというクラスをBというクラスで使い、runの中でBクラスを使うことはできるのでしょうか?
これをしようとするとclassBの最初の
public class...
のclassに赤線が引かれて
トークン "class" に構文エラーがあります。正しくは char です
とエラーが出てしまいます。
始めたばかりで分からないので回答お願いいたします

0 likes

1Answer

質問は2点ありますよね。

質問1

AというクラスをBというクラスで使い、runの中でBクラスを使うことはできるのでしょうか?

  • class Aを定義し、それをクラスBの内部で利用すること。
  • class Bの中にrunメソッドがあり、その中でクラスAのインスタンスやメソッドを利用すること。
    という前提であれば可能と思います。

質問2

public class...のclassに赤線が引かれて
トークン "class" に構文エラーがあります。正しくは char ですとエラーが出てしまいます。

質問2については構文エラーですよね。スペルミスとか、見えないけど全角スペースが入っているとかないですか?試しに最小限の例のようなclassを作ってみて少しづつやりたいことにかえていって解消していくのはどうでしょう。

A.java
public class A {
  public static void main(String[] args){
    char c = 'あ';
    System.out.println(c);
  }
}

もしくは今エラーが発生しているclassの中身を全てコメントアウトして、一度正常にコンパイルが通る状態にしてから、徐々にコメントアウトを外していき、再びエラーが発生するようになった場合の周辺に、問題点がないか?探ってみてください。

1Like

Comments

  1. @iaojfkojgpakm

    Questioner

    回答ありがとうございます!
    返信遅くなってしまってすみません。
    少し訂正なのですが、質問1についてCというクラスのrunメソッドでAクラスを用いたBメソッドを実行できるかどうかという質問です!
    この場合でも行けるのでしょうか!?
    返信お待ちしております。

  2. CというクラスのrunメソッドでAクラスを用いたBメソッドを実行できるかどうかという質問です!

    ご質問の前提として、以下のように考えています。この前提の上に立てば可能です。
    文章だと、どんなclass構成なのかイメージが付きづらいのでclassの枠だけでもいいので こんなイメージとして質問してほしいです。

    sample.java
    public class sample {
        public void sampleB() { 
            //ここに処理を書く
        }
    }
    

    前提

    • Aクラスが存在し、Bメソッドが定義されている。(class B は存在しない、Bはメソッド名)
    • Cクラスが存在し、その中にrunメソッドが定義されている。
    • Cクラスのrunメソッド内でAクラスのインスタンスを生成し、Bメソッドを呼び出してる。
    • Cクラスのインスタンスを生成し、そのrunメソッドを呼び出している。
    • それぞれのclassがアクセス可能であること。

    実行イメージ

    A.java
    public class A {
        public void B() { // class A内のメソッドB
            System.out.println("B method in A class is executed.");
        }
    }
    
    C.java
    public class C {
        public void run() { // Cの中にrunが存在する
            A aInstance = new A(); // classCの中でclass Aをインスタンス化して
            aInstance.B(); // Aの中のメソッドBを呼び出し
        }
    }
    
    Main.java
    public class Main {
        public static void main(String[] args) {
            C cInstance = new C(); //C のインスタンスをよびだして
            cInstance.run(); // Cのrunを呼び出し
        }
    }
    
    

    Main.javaを実行したら、どうなるか確認してみてください。

  3. @iaojfkojgpakm

    Questioner

    なるほど!丁寧にありがとうございます!!
    ではBメソッドの中でAクラスにあるB’メソッドは実行できますか??
    何度もすみません、、、

  4. 実行できます。
    コードを書いてみて詰まったら、コードを公開しつつ、また連絡下さい

Your answer might help someone💌