Programming Fundamentals/Objects/Swift

objects.swift

```// 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()
```

Try It

Copy and paste the code above into one of the following free online development environments or use your own Swift compiler / interpreter / IDE.