2017-08-18 22 views
-6

私は今日Javaを学び始めました。Head First Java、第2版に続き、私には分かりにくいコードがいくつかあります。私はPythonでの経験がありますが、これは新しいものです。具体的には、私は何を理解していないブールcanRecord = false; 実際にしています。Javaコードを理解するための助けが必要

class DVDPlayer { 

    boolean canRecord = false; 

    void recordDVD() { 
     System.out.println("DVD recording"); 
    } 
    void playDVD() { 
     System.out.println("DVD playing"); 
    }  
} 

class DVDPlayerTestDrive { 
    public static void main(String [] args) { 

     DVDPlayer d = new DVDPlayer(); 
     d.canRecord = true; 
     d.playDVD(); 

     if (d.canRecord == true) { 
      d.recordDVD(); 
     } 
    } 
} 
+2

ブール変数を削除して偽に設定する – Jens

+3

まず、基本を学ぶ必要があります。 –

+0

これは書籍のものですが、私は本を書いていません – kronberger

答えて

0

あなたのクラスのDVDPlayerでは、通常のDVDプレーヤーでは記録できないと言うことを選択しました。だからあなたはそれをfalseに設定します。

DVDPlayerTestDriveクラスのように、変数を直接変更することもできます。

は=偽は唯一 オブジェクトの動作を再現することが可能であることを示すために ブールcanRecordを意味します。この場合、DVDPlayerを表すクラスがあります。わかっているように、DVDPlayersの大半は記録されません。

オブジェクト指向プログラミングへの最初のアプローチでは、コードにあまり集中しないでください(私はそれがあなたの最初のOOP言語だと推測します)。

は、この例では、本からであれば、私も著者が何を意味するのかを想像することはできません)=その背後にある概念や考え方を理解することが

+0

今、もっと明確です...ありがとう – kronberger

0

を試してみてください。 この例の私のビジョンは理想からは遠いですが、部分的に、私は願っています

class DVDPlayer { 
    private final boolean recordable; 

    // by default recordable false 
    DVDPlayer() { 
     this(false); 
    } 

    // you can specify recordable 
    DVDPlayer(boolean recordable) { 
     this.recordable = recordable; 
    } 

    void playDVD() { 
     System.out.println("DVD playing"); 
    } 

    void recordDVD() { 
     if (recordable) { 
      System.out.println("DVD recording"); 
     } else { 
      System.out.println("non recordable"); 
     } 
    } 
} 

class DVDPlayerTestDrive { 
    public static void main(String [] args) { 
     DVDPlayer d1 = new DVDPlayer(true); 
     d1.recordDVD(); 
     d1.playDVD(); 

     DVDPlayer d2 = new DVDPlayer(); 
     d2.recordDVD(); 
     d2.playDVD(); 
    } 

OOP

の本質を理解することができ、あなたのアイデアを得ます。

関連する問題