2016-03-20 11 views
0

私は以下の古典的なJavaスクリプトを持っています。別のものからJavaニッペットを実行するには

public class HelloWorld3 {   
    public static void main(String[] args) { 
     System.out.println("Hello"); 
    }  
} 

私はただそれだけで、これはちょうどそれをする私の試みであった"Hello"

を出力するように別のスクリプトからこのスクリプトを実行します。

public class Test { 
    public static void main(String[] args) { 
     HelloWorld3 obj = new HelloWorld3(); 
     System.out.println(obj); 
    } 
} 

これは失敗し、なぜ失敗したのですか。

正しい方法はわかりません。

+0

HelloWorld3にコンストラクタがありますか?別の 'main'メソッドから' main'メソッドを呼び出すべきではありません。また、System.out.println()はobjのtoString()値を出力し、 'main' –

+0

"を実行しません。なぜ失敗したのですか? "なぜ、クラスの代わりにインスタンス/参照から静的メソッドを呼び出そうとしていますか? – Pshemo

答えて

0

mainメソッドは、プログラムを開始するために使用されます。プログラムを2つの異なるクラスに分けて呼び出す必要はありません。

クラスのインスタンスを作成するには、constructorが必要です。ここでは1です:

public class HelloWorld3 { 

    public HelloWorld3(){ 

    } 
} 

今ではHelloWorld3型オブジェクトを作成するには(そのような試験など)別のクラスからnew HelloWorld3を呼び出すことができます。あなたはこのオブジェクトがメッセージを印刷したい場合は、それにメソッドを追加することができます:

public class HelloWorld3 { 

    public HelloWorld3(){ 

    } 

    public void printHello(){ 
     System.out.println("Hello"); 
    } 
} 

あなたは今、あなたのテストクラス内このmainメソッドを使用することがあります。

public static void main(String[] args) { 
    HelloWorld3 obj = new HelloWorld3(); 
    obj.printHello(); 
} 
0

はHelloWorld3

public class HelloWorld3 {   
     public static void main(String[] args) { 
      System.out.println("Hello"); 
     }  
     public void printMeStatic(String msg) { 
      System.out.println(msg); 
     } 
     public void printMeInstace(String msg) { 
      System.out.println(msg); 
     } 
    } 
を変更他のクラスの

使用して

public static void main(String[] args) { 
     HelloWorld3 obj = new HelloWorld3(); 
     System.out.println(obj.printMeInstace("a msg 1")); //use this if you need an instance/ object of the class HelloWorld3 
     System.out.println(HelloWorld3.printMeStatic("a msg 2")); //use this for static methods (you dont need an object to use them) 
} 
関連する問題