2016-08-16 1 views
-2

こんにちは私はjavaで新しいですし、いくつかの例を試してみましたが、期待された出力が得られません。Javaインターフェイス - オブジェクト指向の関連

ここでは、スプリングなしの依存性注入を適用していますが、期待される出力は得られません。

BaseballCoach

は、毎日の幸運のため FortuneServicesに依存しており、ここで私はここで

は、私は「 今日はウル幸運な日ある」置く期待してい... BaseballCoachコンストラクタで FortuneServicesを注入しようとしています。私はいくつかの簡単な言語理論的な説明が間違ってやっているところ と...事前に

感謝を教えてください

いくつかのいずれかの助けが

が...もっと価値がある - >これがメインです

 public class DiMain 
     { 
      public static void main(String[] args) 
      { 
       HappyFortune hf = new HappyFortune(); 
       BaseballCoach bs = new BaseballCoach(hf);//this is constructor which act as dependency. 

       bs.getDailyFortune(); 
      } 
     } 

取るクラス - コンストラクタにパラメータ化する必要があり>別のクラスを

public class BaseballCoach 
    { 
     private FortuneServices fortunes; 

     public BaseballCoach(FortuneServices thefortuneservices) 
     { 
      fortunes = thefortuneservices; 
     } 


     public String getDailyFortune() 
     { 
      return fortunes.getFortune(); 

     } 
    } 

- >これは

public interface FortuneServices 
    { 
     public String getFortune(); 
    } 

インタフェースクラスである - > &このクラスあなたがいずれかを提供したことがないので、あなたが任意の出力を取得されていません理由は

public class HappyFortune implements FortuneServices 
    { 
     public String getFortune() 
     { 
      return "today is ur lucky day"; 
     } 
    }   
+0

あなたがコンソールに出力を印刷する必要が... – 4castle

+0

おそらく、あなたは出力を印刷する必要があります: 'のSystem.out.println(bs.getDailyFortune());' – bradimus

+0

何も出力していないので、何も出力されません。 – njzk2

答えて

3

インタフェースを実装します。私はあなたのコードが正しく "今日は幸運な日です"という価値を得ていると思うが、それは終了する。

bs.getDailyFortune()を試してみてください。同様に:

System.out.println(bs.getDailyFortune()); 

それとも、あなたが言うことと同じくらい

bs.getDailyFortune(); 

あなたgetFortune()方法を変更し、それを維持したい場合:

public void getFortune() { 
    System.out.println("today is ur lucky day"); 
} 

System.outOutputStreamである(具体的には、PrintStream)コンソールにデータを直接出力することができます。これはおそらく、出力を表示するための最も一般的な方法です。

ここで出力に

より: https://docs.oracle.com/javase/tutorial/essential/io/formatting.html

関連する問題