implicitte karakteristisk
af et objekt-orienteret program er Abstraction
. Abstraktion er specifikationen af en abstrakt datatype, som omfatter en specifikation af den type er datarepræsentation adfærd
og. Især
Til vores formål, en abstrakt datatype er en ny type (ikke iboende sproget). Det er ikke en af de primitive datatyper, der er indbygget i programmeringssprog (såsom int, lang, float, etc.).
Sondringen i det foregående afsnit er meget vigtigt. De data repræsentation og opførsel af de iboende eller primitive typer er allerede kendt af compiler og kan ikke ændres af programmøren.
repræsentation og opførsel af en abstrakt type er ikke kendt for at compileren, indtil det er angivet af programmøren og præsenteres for compiler på en hensigtsmæssig måde.
Hvordan præsenterer vi specifikationen af en abstrakt type til den compiler? Java og C ++ programmører definere datarepræsentation Salg og opførsel Salg af en ny type (præsentere specifikationen til compileren) at bruge søgeordet klasse
(C ++ programmører kan også bruge de søgeord struct
og union
).
Med andre ord, i Java og C ++, søgeordet klasse
bruges til at konvertere specifikationen af en ny type til noget, compileren kan arbejde med; en sæt af planer
som det var.
Andre sprog kan bruge forskellige mekanismer til at præsentere specifikationen af den abstrakte type compileren.
Når den nye type er defineret , et eller flere objekter af denne type kan bringes i at blive (instantieres, forårsagede at besætte hukommelsen).
Når instantieres, er det objekt, siges at have statslige
og adfærd
. state
af et objekt bestemmes af de aktuelle værdier af sine data (f.eks variabler) og opførsel
af et objekt bestemmes af dens metoder (medlems funktioner eller instans metoder).
For eksempel, igen tage nogle friheder, hvis vi ser en GUI-knap som et objekt, er det forholdsvis nemt at visualisere tilstand og adfærd.
En GUI-knap kan normalt manifestere enhver af en række forskellige tilstande: størrelse, placering, deprimeret billede, ikke deprimeret billede, billedtekst osv Hver af disse tilstande er bestemt af data lagret i instansvariabler
af knappen objekt