はじめて投稿しますM.Manoと申します。 あるクラスのパブリックなコンストラクタをプライベートに変更しても、そのクラスを利用するクラスから呼べるというものです。JavaとPCの環境は以下の通りです。・JavaJ2SE 1.4.1_01・PCTOSHIBA Satellite ProWindows98166Mhz 64MB以下にサンプルを示します。------------------------------------------------Sample.java1: public class Sample {2: public Sample() {3: System.out.println("パブリックなコンストラクタです。");4: }5: }--------------------------------------------TestSample.java1: public class TestSample {2: public static void main(String[] args) {3: Sample obj = new Sample();4: }5: }-----------------------------------------------------------以上の2つファイルをコンパイルします。>javac Sample.java>javac TestSample.java実行すると以下のメッセージが出力されます。>java TestSampleパブリックなコンストラクタです。うまく動作するのを確認して以下を修正します。・Sample.javaの2行目2: private Sample() {・Sample.javaの3行目3: System.out.println("プライベートなコンストラクタです。");修正したSample.javaをコンパイルします。>javac Sample.java実行すると以下のメッセージが出力されます。>java TestSampleプライベートなコンストラクタです。ここでTestSample.javaをコンパイルすると、以下のエラーメッセージが表示されます。>javac TestSample.javaTestSamle.java:3: Sample() は Sample で private アクセスされます。 Sample obj = new Sample(); ^エラー 1 個これは一体何が起きているのでしょうか?ご教授お願いします。
Kazuki さんが仰っているように、スレッドで処理できるならスレッドが一番よいでしょう。 FTP のアプリケーションが .NET 製でないなら、別プロセス起動しか方法はないでしょうね。 例 ConsoleApplication1.exe public class Program { public static void Main(string[] args) { Console.WriteLine("Console Application 1"); RunAppDomain(); RunThread(); } private static void RunAppDomain() { AppDomain domain = AppDomain.CreateDomain("ConsoleApplication2AppDomain"); domain.Load("ConsoleApplication2"); domain.ExecuteAssemblyByName("ConsoleApplication2"); } private static void RunThread() { Thread t = new Thread(Console2Main); t.Start(); } private static void Console2Main() { ConsoleApplication2.Program.Main(null); } } ConsoleApplication2.exe namespace ConsoleApplication2 { public class Program { public static void Main(string[] args) { Console.WriteLine("Console Application 2"); } } }
- Child Tree -