0

私はこのコードを持っていますが、別のクラスcreate()のメソッドを使用してパブリックメソッドを呼び出す方法がわかりません。public static void main(String[] args)ネットを検索しましたが、パブリックメソッドだけでパブリックボイドメソッドだけでは何も見つかりませんでした。

これがコードです

mainclass.java:

public class Mainclass {

/**
 * @param args
 */
public static void main(String[] args) {
    // TODO Auto-generated method stub
    create createObject = new create();
    createObject.create();
    System.out.println("dammit");

    }

}

create.java

public class Create extends javax.swing.JPanel {

    public create() {
            initComponents();
            setDate();
    }
}
4

4 に答える 4

5

それは実際にはコンストラクタです。で呼び出しますnew

 create panel = new create();

小文字の名前を持つクラスを持つことは、非常に非正統的です。

于 2012-08-23T05:35:24.037 に答える
3

これはコンストラクタであり、通常のメソッドではありません。含まれているクラスと同じ名前であることがわかります。ここで呼び出されます。

create createObject = new create();

ところで、クラスcreateを呼び出すと、私は悲しいパンダになります。

于 2012-08-23T05:35:43.710 に答える
2
public create() {
            initComponents();
            setDate();
    }

create()コンストラクターなので、Create createObject = new Create();パラメーター化されていないコンストラクターが自動的に呼び出されます。

コンストラクタについてはこちらをお読みください

クラス名は常に大文字で始まる Java 命名規則に従ってください。

于 2012-08-23T05:41:09.850 に答える
1

トピック外のことから始めますが、Java 命名規則について読んで、Javaでクラス/メソッド/変数に名前を付ける方法を理解することをお勧めします。

私たちが知っているコンストラクターには、クラスの名前を使用し、戻り値の型がないことを除いて、メソッド宣言のように見える宣言があります。したがって、次のようなものを使用できます。

public class create extends javax.swing.JPanel {
    /** Normal Constructor */
    public create() {
    }

    /**
    * Normal method for initialization.
    */
    public void create(){
        initComponents();
        setDate();
    }
}

私は、クラスのオブジェクトの初期化 (場合によってはセットアップ)を処理する特定のメソッドを持つことを好む傾向があります。つまり、すべてのビジネス ロジックをオブジェクト作成メカニズムから分離しておきます。したがって、私があなただったら、メソッドの名前を に変更public void doCreate()し、そこにあるすべてのものを初期化したでしょう。(これは主観的で好みの問題です)。この場合、私MainClassは次のように変更したでしょう:

public class MainClass {
    /**
     * @param args
     */
    public static void main(String[] args) {
        create createObject = new create();
        createObject.doCreate();
        System.out.println("dammit");
    }
}
于 2012-08-23T05:51:38.833 に答える