object

Een object is een data structuur die voorziet in eigenschappen, variabelen en methoden en gebeurtenissen.

Ieder object is verbonden met een Class, die het gedrag van deze eigenschappen, variabelen, methodes en gebeurtenissen beschrijft.

Een Class kan gedefiniëerd zijn ofwel in Gambas als e.g. the Class "TextBox" ofwel door de programmeur die een nieuwe Class definiëert in zijn project.

Een class heeft nooit een adres. Een class kan niet weergegeven worden.

Objecten hebben een runtime address. Dit adres kan getoond worden in het "watch" venster. Ook de leden van het object kunnen daar weergegeven worden.

Voorbeelden

In dit voorbeeld is "TextBox" een Class. "TextBox1" is een object, gecreëerd door de IDE. "hTextBox1" is een verwijzing naar een object van het type TextBox. Later in dit voorbeeld wordt de verwijzing naar de in de IDE gemaakte "TextBox1" gekopieerd naar "hTextBox1". In het watch venster van de IDE tonen beide verwijzingen hetzelfde hexadecimale adres. Ook de leden van het object kunnen weergegeven worden in het watch venster.

Expression Value
TextBox ERROR: Unknown ...
TextBox1 (TextBox 0x81099c0)
hTextBox1 (TextBox 0x81099c0)
hTextBox1.Text "Set hTextBox1"

PUBLIC SUB Button1_Click()

  DIM hTextBox1 AS TextBox            ' can hold the address of the object

  hTextBox1 = TextBox1                ' gets the address of the already existing object
  hTextBox1.Text = "Set hTextBox1"
  hTextBox1.X = TextBox1.X + 80
  hTextBox1.Y = TextBox1.Y + 120

END

In dit voorbeeld is "TextBox" een Class. "hTextBox1" is een object van deze Class, dat gecreëerd wordt op de Form Form1. Daarna wordt het gevuld met een Text en verplaatst naar een plaats die relatief is ten opzichte van de gecreëerde IDE. TextBox with the name TextBox1

PUBLIC SUB Button1_Click()

  DIM hTextBox1 AS TextBox            ' can hold the address of the object

  hTextBox1 = NEW TextBox(Form1)      ' Instantiates a new TextBox, i.e. creates the object
  hTextBox1.Text = "Set hTextBox1"
  hTextBox1.X = TextBox1.X + 80
  hTextBox1.Y = TextBox1.Y + 120

END