Objects

Introduction

Keys and values

Classes

Integer caching

If we set \(x=2\) we can either create \(2\) in memory, or simply point \(x\) to \(2\), which is already in memory

That means if we do \(x=2\) \(y=2\) they have the same pointer.

Can also cache some other common data values, eg empty lists.

Makes sense if pointer is smaller in memory than value.

Representing objects

Representing a single object

Null in objects

Representing a class with a multiple array (ie 2d)

Representing a class with a single array (ie 1d)

Functions with objects

Creating new objects

Getting values by field

Adding fields

Changing values in fields

Hierarchies of objects

Inheritance