Programming Fundamentals/Object Examples Swift

Objects edit

 // This class converts temperature between Celsius and Fahrenheit.
 // It may be used by assigning a value to either Celsius or Fahrenheit 
 // and then retrieving the other value, or by calling the ToCelsius or
 // ToFahrenheit methods directly.
 
 class Temperature {
     var _celsius:Double = 0
     var _fahrenheit:Double = 32
 
     init(celsius:Double?=nil, fahrenheit:Double?=nil) {
         if celsius != nil {
             self.celsius = celsius!
         }
         
         if fahrenheit != nil {
             self.fahrenheit = fahrenheit!
         }
     }
 
     var celsius: Double {
         get {
             return self._celsius
         }
         set {
             self._celsius = newValue
             self._fahrenheit = toFahrenheit(celsius:self._celsius)
         }
     }
 
     var fahrenheit: Double {
         get {
             return self._fahrenheit
         }
         set {
             self._fahrenheit = newValue
             self._celsius = toCelsius(fahrenheit:self._fahrenheit)
         }
     }
     
     func getCelsius() -> Double {
         return self.celsius
     }
     
     func setCelsius(celsius:Double) {
         self.celsius = celsius
         self.fahrenheit = toFahrenheit(celsius:celsius)
     }
 
     func getFahrenheit() -> Double {
         return self.fahrenheit
     }
     
     func setFahrenheit(fahrenheit:Double) {
         self.fahrenheit = fahrenheit
         self.celsius = toCelsius(fahrenheit:fahrenheit)
     }
 
     func toCelsius(fahrenheit:Double) -> Double {
         return (fahrenheit - 32) * 5 / 9
     }
     
     func toFahrenheit(celsius:Double) -> Double {
         return celsius * 9 / 5 + 32
     }
 }
 
 // This program creates instances of the Temperature class to convert Celsius 
 // and Fahrenheit temperatures.
 //
 // References:
 //     https://www.mathsisfun.com/temperature-conversion.html
 //     https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/TheBasics.html
 
 func main() {
     let temp1 =  Temperature(celsius:0);
     print("temp1.celsius = " + String(temp1.celsius));
     print("temp1.fahrenheit = " + String(temp1.fahrenheit));
     print("");
 
     temp1.celsius = 100;
     print("temp1.celsius = " + String(temp1.celsius));
     print("temp1.fahrenheit = " + String(temp1.fahrenheit));
     print("");
     
     let temp2 = Temperature(fahrenheit:0);
     print("temp2.fahrenheit = " + String(temp2.fahrenheit));
     print("temp2.celsius = " + String(temp2.celsius));
     print("");
 
     temp2.fahrenheit = 100;
     print("temp2.fahrenheit = " + String(temp2.fahrenheit));
     print("temp2.celsius = " + String(temp2.celsius));
 }
 
 main()

Output edit

temp1.celsius = 0.0
temp1.fahrenheit = 32.0

temp1.celsius = 100.0
temp1.fahrenheit = 212.0

temp2.fahrenheit = 0.0
temp2.celsius = -17.7777777777778

temp2.fahrenheit = 100.0
temp2.celsius = 37.7777777777778

References edit