A UserList that HAS-A List
The complete source of inheritance_userlist.ek9, compiled by the EK9 compiler. Shown on inheritance.html.
#!ek9 defines module site.inheritance.userlist defines class User name as String: String() User() -> name as String this.name: name default User() isValid() as pure <- rtn as Boolean: name? default operator ? UserList users as List of User: List() // HAS-A relationship addIfValid() -> user as User if user.isValid() users += user // Clear separation: UserList uses List // Not confused with List itself // Can change storage (Set? Array?) easily size() as pure <- rtn as Integer: length users default operator ? defines program ValidUsers() validUsers <- UserList() validUsers.addIfValid(User("Steve")) validUsers.addIfValid(User()) Stdout().println(`Valid users: ${validUsers.size()}`)
Download inheritance_userlist.ek9
Output
Valid users: 1