Start learning free

LESSON 289 OF 678 · FUNCTIONS & CLASSES

Class Fields in Swift

Lesson

TL ; DR:

  • A field is a variable that lives inside a class. Each object of that class has its own copy.


  • Declare a field with a name and a type using var so other code can read and write it:

    class Dog {
        var name: String = ""
        var age: Int = 0
    }
    

  • Access a field on an object with the dot operator: dog.name = "Rex"



Full lesson:

Right now your Dog class is just an empty shell — every Dog object you create is identical to every other one. We need a way to attach data to each object.

That's what fields are for. A field is a variable that belongs to a class — and each object created from that class gets its own copy of every field.


Declaring fields

class Dog {
    var name: String = ""
    var age: Int = 0
}
  • var declares a mutable field — any code can read and write it. You'll use let later for fields that should not change after being set.

  • name: String is just a variable declaration — same syntax you'd use anywhere else.


Reading and writing fields

var dog = Dog()
dog.name = "Rex"        // write
dog.age = 4
print(dog.name)   // read → prints "Rex"

Each object has its own slot for every field, so two dogs can have different names without interfering.


Default values

In Swift, every stored property must have a value by the time an object is created, and numbers, Bool and String properties do not get one automatically. Give each a default value in the declaration, or set it in an initializer (a later lesson). Typical defaults are:

  • Numbers: 0

  • Bool: false

  • String: ""

  • An optional property such as var nickname: String? starts as nil without an explicit default


Your task

Update the Dog class to have two fields: name (a String) and age (an Int). Then in mainFunction, set them on the dog object so the pre-filled print prints:

Rex is 4 years old
STEP 1 OF 2
    Ctrl + Enter to check