0

JavaFX クラスに関する非常に初心者の Q。Main は JavaFX のメインの開始クラスであり、コンストラクターがありません (理由はわかりません)。

Main.java

class Main extends Application {
   Log  log;   // class, not shown here
   Work work;
   @Override
   public void start() // entry point
   {
      log  = new Log("main.log"); // opens log file, need to be non-static
      work = new Work();
   }
}

仕事.java

class Work{
     public Work() // constructor
    {
       Main.log.write("Making work object");  // error
       // What is the right method to call one non-static class from another ???
    }
4

3 に答える 3

1

ログを Work インスタンスに渡します。

class Main extends Application {
   Log  log;   // class, not shown here
   Work work;
   public start() // entry point
   {
      log  = new Log("main.log"); // opens log file, need to be non-static
      work = new Work(log);
   }
}

== Work.java ==

class Work{
    Log  log;
    public Work(Log log) // constructor
    {
       this.log = log;
       log.write("Making work object");           
    }
于 2013-11-07T12:51:37.593 に答える
0

あなたのLogニーズは である必要がpublicありstaticます。

何かが宣言されている場合にのみpublic、別のクラスでアクセスできます(つまり、継承なしで)

何かが宣言されている場合にのみ、それstaticを次のように参照できますClassname.VariableName

class Main extends Application {
   public static Log  log; // see the change ?   
   ...
   public void start() // this needed a return type
   {
      ...
   }
}
于 2013-11-07T12:47:25.067 に答える