در شی گرایی٬ کلاس ها همان کپسول ها هستند که فیلدها (متغیرها) و متدها (روال ها و توابع) رو در خودشون نگه میدارن تا مدیریت کدها در یک پروژه بزرگ رو کمی راحت تر کنند.
توجه کنید که قبل از برنامه نویسی شی گرا باید یک طراحی شی گرا انجام دهید. یعنی هنگام تجزیه و تحلیل مساله باید ببینید که چه قسمتهایی از کار رابطه تنگاتنگی با هم دارند و چه قسمت هایی از هم مستقل هستند.
مثلا یک دانشگاه را در نظر بگیرید. بخش اداری دانشگاه با بخش علمی دانشگاه دو کار متفاوت از هم انجام می دهند (و معمولا ساختمان های جداگانه ای دارند!) ولی تا مراحل اداری انجام نشده باشد بخش علمی به دانشجویان سرویس نمی دهد. (وابستگی به هر حال وجود دارد ولی از نظر کارکرد از هم مستقل هستند)
ولی قسمتهای داخلی هر بخش رابطه های نزدیک تری با هم دارند. مثل قسمت ثبت نام و انتخاب واحد. (وابستگی بیشتری وجود دارد ولی برای جلوگیری از تداخل مشکلات داخلی یکدیگر در اتاقهای جداگانه قرار دارند - به عبارتی کپسوله شده اند.)
در داخل هر قسمت هم تعدادی کارمند مشغول خدمات دهی هستند که رابطه تنگاتنگی با هم دارند و برای انجام کار مدارک را مدام بین هم منتقل می کنند. (وابستگی زیادی به هم دارند)
پس هر قسمت را می توان یک کلاس در نظر گرفت و کارهای داخل کلاس را با فیلدها و متدها ساماندهی کرد. همچنین بخش های بزرگتر را می توان کلاس بزرگتری در نظر گرفت که دارای اشیای دیگری در داخل خود هستند.
از آنجا که کپسول ها دارای ابعاد فیزیکی هستند - تا مواد داخل خود را نگهداری کنند - کلاس ها هم با یک مستطیل مدل سازی می شوند تا فیلدها و متدهای خود را نگهداری کنند.
╗════════════════════════════╔
║ نام کلاس ║
║----------------------------║
║ ║
║ نام فیلدها ║
║ ║
║ ║
║----------------------------║
║ ║
║ نام متدها ║
║ ║
║ ║
║ ║
║ ║
╝════════════════════════════╚