【Java基礎編】【第七課】グループ

1803 ワード

私が理解している組み合わせは、あるクラスに別のクラスのオブジェクトが含まれていることです.
このような方法は組み合わせでしょう.
バッテリーは1種類で、電気があります
懐中電灯には電池が必要です
 
コードを見てみましょう.
//    
class Battery
{
    //   
    public void chargeBattery(double p)
    {
        power += p;
        System.out.println("Battery: power is " + power );
    }
    //   
    public boolean useBattery(double p)
    {
        if (power >p )
        {
            power -= p;
            System.out.println("Battery: power is " + power );
            return true;
        }
        else 
        {
            power = 0.0;
            System.out.println("Battery: power only is " + power +", not enough");
            return false;
        }
    }
    //   
    private double power = 0.0;
}


//     
class Torch
{
    //      
    public void turnon(int hours)
    {
        System.out.println("Torch:turnon " + hours + " hours.");
        
        if ( theBattery.useBattery( hours*0.1) == false )
        {
            System.out.println("Torch:can not use, please charge! ");
        }
    }
    
    //    
    public void charge(int hours)
    {
        System.out.println("Torch:charge " + hours + " hours.");
        theBattery.chargeBattery( hours*0.2 );
    }
    
    //   
    private Battery theBattery = new Battery();
}


public class test
{
    public static void main(String[] args)
    {
        Torch aTorch = new Torch();
        aTorch.charge(2);
        aTorch.turnon(3);
        aTorch.turnon(3);
    }

}

実行結果:Torch:charge 2 hours.Battery:power is 0.4 Torch:turnon 3 hours.Battery:power is 0.0999999999999999998 Torch:turnon 3 hours.Battery:power only is 0.0,not enoughTorch:can not use,please charge!
 
主に対象に向かう一つの思想で、よく理解しています~~