Terms Definitions


Complete Aircraft Engine Simulation Code Listing

Example 11.26: IPump.java

image from book
 1     public interface IPump { 2       public void setSpeed(int speed); 3       public void incrementSpeed(int i); 4       public int  getSpeed(); 5     } 
image from book

Example 11.27: ISensor.java

image from book
 1     public interface ISensor { 2       public float getReading(); 3       public void setReading(float reading); 4       public void incrementReading(float reading); 5     }
image from book

Example 11.28: IEngine.java

image from book
 1     public interface IEngine { 2       public void start(); 3       public void stop(); 4       public void incrementThrust(); 5       public void decrementThrust(); 6     }
image from book

Example 11.29: PartListener.java

image from book
 1     import java.util.*; 2 3     public interface PartListener extends EventListener { 4       public void sensorReadingChangePerformed(PartEvent pe); 5       public void pumpSpeedChangePerformed(PartEvent pe); 6       public void partStatusChangePerformed(PartEvent pe); 7     }
image from book

Example 11.31: Sensor.java

image from book
 1     public abstract class Sensor extends Part implements ISensor { 2 3       public Sensor(String name){ 4        super(name); 5        System.out.println("Sensor object created!"); 6       } 7 8       public Sensor(PartStatus status, String name){ 9        super(status, name); 10       System.out.println("Sensor object created!"); 11      } 12 13 14       /******************************* 15         ISensor Interface Methods 16       ********************************/ 17 18      public float getReading(){ 19         return 0; 20       } 21 22      public void setReading(float reading){ 23        fireSensorReadingChangeEvent(reading); 24       } 25 26      public void incrementReading(float increment) { 27        fireSensorReadingChangeEvent(getReading()); 28       } 29    }
image from book

Example 11.32: Engine.java

image from book
 1     public abstract class Engine extends Part implements IEngine { 2 3       public Engine(PartStatus status, String name){ 4         super(status, name); 5         System.out.println("Engine object created!"); 6       } 7 8       public Engine(String name){ 9          super(name); 10         System.out.println("Engine object created!"); 11      } 12 13 14      /********************************************** 15                    IEngine Interface Method Stubs 16 17           Default behavior will do nothing. They must be 18      overridden in a derived class. 19      ************************************************/ 20      public void start(){ } 21      public void stop(){ } 22      public void incrementThrust(){ } 23      public void decrementThrust(){ } 24    }
image from book

Example 11.34: OxygenSensor.java

image from book
 1     public class OxygenSensor extends Sensor { 2      private static final int MIN_READING = 0; 3      private static final int MAX_READING = 1000; 4      private float _reading = 0; 5 6      public OxygenSensor(String name){ 7        super(name); 8        System.out.println("Oxygen Sensor " + name + " object created!"); 9        _reading = 0; 10        } 11 12       public OxygenSensor(PartStatus status, String name){ 13         super(status, name); 14         System.out.println("Oxygen Sensor " + name + " object created!"); 15         _reading = 0; 16        } 17 18 19        public float getReading(){ return _reading; } 20 21        public void setReading(float reading){ 22          if( (reading >= MIN_READING) && (reading <= MAX_READING)){ 23               _reading = reading; 24               super.setReading(reading);     //call Sensor method to fire sensor reading change event 25          } else { 26              System.out.println("Warning: Attempt to set Oxygen Sensor outside valid range: " + 27                                MIN_READING + " - " + MAX_READING); 28             } 29 30        } 31 32        public void  incrementReading(float increment){ 33         if(((_reading + increment) >= MIN_READING) && ((_reading + increment) <= MAX_READING)){ 34             _reading += increment; 35             super.setReading(_reading);    //call Sensor method to fire sensor reading change event 36           } else { 37                   System.out.println("Warning: Attempt to set Oxygen Sensor outside valid range: " + 38                                MIN_READING + " - " + MAX_READING); 39               } 40        } 41 42      } // end OxygenSensor class
image from book

Example 11.36: PartEvent.java

image from book
 1      import java.util.*; 2 3      public class PartEvent extends EventObject { 4        private String _part_name = null; 5        private double _value = 0.0; 6 7        public PartEvent(Object source, String part_name, double value){ 8          super(source); 9          _part_name = part_name; 10         _value = value; 11        } 12 13         public PartEvent(Object source, String part_name){ 14          super(source); 15          _part_name = part_name; 16         } 17 18        public String getPartName(){ return   _part_name; } 19 20        public double getValue(){ return _value; } 21 22        public String toString(){ return super.toString() + " " + getPartName();} 23 24        public String statusToString(){ 25         return ((Part) source).isWorking() ? " is working properly!" : " has malfunctioned!"; 26        } 27 28     } 
image from book

Example 11.37: PartStatus.java

image from book
 1     public final class PartStatus { 2       public static final PartStatus NOT_WORKING = new PartStatus(false); 3       public static final PartStatus WORKING = new PartStatus(true); 4 5       private boolean _is_working = false; 6 7       private PartStatus(boolean is_working){ 8            _is_working = is_working; 9       } 10 11      public boolean isWorking(){ return _is_working; } 12    } 
image from book

Figure 11-22 shows the results of running example 11.38.

image from book
Figure 11-22: Results of Running Example 11.38

Example 11.38: EngineTester.java

image from book
 1     public class EngineTester { 2        public static void main(String[] args){ 3          IEngine engine = new SimpleEngine("Main Engine"); 4 5          engine.start(); 6          engine.incrementThrust(); 7          engine.decrementThrust(); 8       } 9     }
image from book




Java For Artists(c) The Art, Philosophy, and Science of Object-Oriented Programming
Java For Artists: The Art, Philosophy, And Science Of Object-Oriented Programming
ISBN: 1932504052
EAN: 2147483647
Year: 2007
Pages: 452

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net