【问题标题】:Need explanation of java Class collaboration/aggregationjava类协作/聚合的需要说明
【发布时间】:2012-04-18 18:43:03
【问题描述】:

我正在执行一项任务,我需要为汽车模拟器制作 3 节课。一个用于燃料,一个用于里程。 “里程等级应该能够与 FuelGauge 对象一起使用。每行驶 24 英里,它应该将 FuelGauge 对象的当前燃料量减少 1 加仑。(汽车的燃油经济性为每加仑 24 英里)。”我只是在努力理解如何正确地将这些类链接在一起,以便他们可以做必要的事情。

如果有人能给出很好的解释,我们将不胜感激。

【问题讨论】:

    标签: java class collaboration aggregation


    【解决方案1】:

    希望我能正确理解您的问题。 简单的答案是 FuelGauge 类将具有属性 amount,可以通过简单的 setter/getter 访问。

    public class FuelGague {
    
        private double amount;
        // Starting amount of fuel
        public FuelGague(double amount) {
            this.amount = amount;
    
        }
        // Not sure if you really need this method for your solution. This is classic setter method.
        public void setAmount(double amount) {
            this.amount = amount;
        }
    
        public double getAmount() {
            return amount;
        }
        // I guess this is what do you actually want to do 
        public void changeAmount(double difference) {
            amount += difference;
        }
    
    }
    
    
    public class Mileage  {
    
           private FuelGague fuelGague;
    
           public Mileage(FuelGague fuelGague) {
               this.fuelGague = fuelGague;
           }
           // This will be main method where you can decrease amount for guelGague
           public void methodForMileage() {
            fuelGague.changeAmount(-1);
           }
    
            public FuelGague getFuelGague() {
            return fuelGague;
        }
    
        public void setFuelGague(FuelGague fuelGague) {
            this.fuelGague = fuelGague;
        }
    
         public static void main(String[] args) 
         { 
                FuelGague fuelGague= new FuelGague(50); 
                Mileage mil = new Mileage(fuelGague);     
         } 
    }
    

    如您所见,Mileage 类引用了在构造函数中传递的fuelGague 对象,并且可以通过FuelGague 类的公共方法对其进行操作。我为 Mileage 类添加了 set 方法,因此您甚至可以设置不同的 FuelGague 类对象。

    【讨论】:

      最近更新 更多