2016-05-10 7 views
0

私は一般的には静的で少し苦労しているようです。 Javaで静的なことは何を正確に行い、どのように修正しますか?例えば、ここにコードJavaで静的に使用

public class StaticProblem 
{ 
    static int number; 
    static int valOne, valTwo, valThree; 

    public static void main(String args) 
    { 
     // stuff 

     valOne = method1(number); 
     valThree = method2(val1, val2); 
    } 

    public static int method1(int parameter) 
    { 
     int var; 
     // stuff 
     return parameter + var; 
    } 

    public static int method2(int parm1, int parm2) 
    { 
     int othervar; 
     // more stuff 

     return parm1 + parm2 + othervar; 
    } 

    : 
} 

のビットは、どのように正確に一つは静的がもはや使用されているように、「静的」の問題を修正しないについては行くだろうさ。私は、静的なJavaの場合、1つのオブジェクトの値を新しいオブジェクトと共有できることを理解しています(例えば、15枚のカードがすべてタンクに残っている同じガスを共有します。同じように)。私はこのコードを修正する方法を知っていると思っていましたし、mainメソッドに新しいStaticProblemオブジェクトを作ることが必要であると思いました。しかし、私は少し失われています。

+0

ここで、「val1」は宣言されていますか? – Bohemian

+0

"valOne"であることをお詫び申し上げます。 - fixed – Baconlord99

+0

メインメソッドで新しい "StaticProblem"オブジェクトを作成しようとしましたか?あなたがしたとき何が起こったのですか? –

答えて

0

メソッドを呼び出すオブジェクト(クラスインスタンス)がないため、メソッドを静的に呼び出す必要があります。

public class Program { 
    public static void main(String[] args) { 
     new Program.run(); //this creates an object so you can get rid of static methods 
    } 

    void run() { 
     //your code goes here instead of inside main 
     ... 
    } 

    void method1() { //these no longer have to be static 
     ... 
    } 

    void method2() { 
     ... 
    } 
} 
関連する問題