Om du inte har allmän förståelse för Skrivbordsklasser se "Skrivbordets klasser".

I allmänhet i objektorienterad programmering är en klass  en abstrakt definition av både (1.) datatyper och (2.) handlingar som kan utföras på dessa data. De senare kallas vanligen för objekt metoder.

Medan klasser bara beskriver en objekttyp på ett abstrakt sätt, kallas objekten som verkligen existerar i ett program för instans av en särskild klass.

Tag ett Skrivbordsprogramobjekt, till exempel: varje programobjekt är en instans av klassen WPProgram definierad av Skrivbordet. Programobjektdata (1.) är bland annat den *.EXE som är associerad med den (t.ex."CMD.EXE") medan (2.) metoder (som kan utföras med dessa data) är att starta programmet (genom att dubbelklicka eller välja menyalternativet "Öppna") eller ändra programmet i inställningsblocket. Trots att du inte kan "se" metoder från din skärm, så används metoder alltid internt när Skrivbordet gör någonting. Om du är obekant med den termen, kan metoder vagt beskrivas som en Application Programmer's Interface (API) till ett objekt. Om du kan REXX; varje gång du använder en av objektinställningssträngarna, för att modifiera ett objekts data, så anropar du faktiskt en metod för ett objekt.

Eftersom metoder är definierade för varje klass, så beror metoderna som du kan anropa ett objekt på dess klass. Jag har inte räknat dem, men WPObjekt, den mest basala Skrivbordsklassen, definierar mer än 100 metoder.

Vad som gör objektorienterad programmering så flexibel (och populär) är att du kan definiera släktskap mellan klasser. För att förstå detta är följande två koncept till hjälp:

För detaljer om vad klassöverlagring är, titta i "Skrivbordets klasslista" i "Introduktion" sektionen.

Medan arv och polymorfism är koncept kända för varje objektorienterad programmiljö (och också för objektorienterade språk, som C++), kan Skrivbordet även tillhandahålla sina fördelar över åtskilliga applikationer. Skrivbordet består av många DLL:er som är delvis oberoende av varandra och programmerare utanför IBM kan utöka Skrivbordet genom att använda dessa funktioner utan att ha Skrivbordets källkod, vilket inte är möjligt med "normala" objektorienterade språk.

Det fungerar bara därför att Skrivbordet använder IBM∩s egen System Objekt Modell (SOM), ett komplext system som ger objekt-orienterad programmeringsgränssnitt även över åtskilliga kodmoduler och även oberoende av programmeringsspråk. SOM är så kraftfullt därför att klasser skapas direkt vid systemstart och finns kvar under körning istället för kompilering.

Det är här Skrivbordsklasslistan kommer in: när Skrivbordet uppstartas, skapar det alla klasser (vilka i SOM är objekt också, men det är en komplex fråga) och etablerar släktskapen mellan dem bara vid denna punkt. Enbart på grund av detta är det möjligt att modifiera klasser utan att IBM, som skapade originalen, ens känner till det.

Bara en kort personlig åsikt om det som gör OS/2 unikt i dagens datavärld. Medan de flesta av dess andra fördelar framför andra operativsystem, som dess pålitliga multikörning, inte är så unika längre (t.ex. Linux är också ganska bra på det), så är användargränssnittet fortfarande försprång över alla operativsystem jag känner till, speciellt då Windows 95.