8

クラスBが公開できないのはなぜですか?クラスを他のクラスで使用するにはどうすればよいですか?短所の中でそれを定義する方が良いですか?!

   //    public class B { why not?

   class B {
        int x;  
        B (int n) {
            x=n;
            System.out.println("constructor 'B (int n)' called!");
        }
    }

    public class Cons { 
        public static void main(String[] args) {B b = new B();}
    }
4

3 に答える 3

14

Java言語の仕様に従い、ファイル(.java)にはパブリッククラスを1つだけ含めることができ、ファイル名はパブリッククラス名と同じである必要があります。

他のプラットフォームでクラスBにアクセスできるようにする場合は、別のB.javaファイルを作成し、クラスBコードをそのファイルに移動できます。

このスレッドはあなたにいくつかのより多くの情報を与えるかもしれません。

于 2012-11-11T06:12:27.863 に答える
10

Q. Javaの1つのクラススコープで2つのパブリッククラスを定義できないのはなぜですか?

A. 言語が設計されている方法と同じです。慣れると、コードを整理するのに役立ちます。

Q. クラスBが公開できないのはなぜですか?

A. 可能ですが、B.javaというファイルに含まれている必要があります。そして、それはそのファイル内の唯一のパブリッククラスでなければなりません。

Q. 他のクラスでクラスを使用するにはどうすればよいですか?

A. 質問を言い換えることができます。しかし、複数のアプローチがあります。

  • クラスをパブリックにし、インスタンス化し、メソッドを呼び出します。
  • クラスを同じファイルに追加し、公開しないで(公開できなくなります)、インスタンス化し、メソッドを呼び出します。同じファイルまたはパッケージ内の他のクラスから使用できるようになります。これは「デフォルト」のアクセス修飾子であり、同じパッケージ内の他のクラス内からこのクラスをインスタンス化できることを意味します。
  • それを内部(またはネストされた)クラスにして、インスタンス化し、メソッドを呼び出します。親クラス内から名前でのみアクセスできます。これにより、カプセル化が増加し、コードが読みやすくなるはずです。 http://docs.oracle.com/javase/tutorial/java/javaOO/nested.html

Q. 短所の中で定義する方が良いですか?

A. 個人的にはそれほど頻繁にやっているとは思いません。上記のリンクには別の言い方がありますが、コードが少し乱雑になることがわかりました。

于 2012-11-11T06:29:16.343 に答える
1

クラスを別のファイルに入れます。

クラスの名前はファイルの名前と一致する必要があります。

于 2012-11-11T06:13:31.767 に答える