Имената на класовете се използват много по-рядко отколкото методите. Затова е още по-малко оправдано, ако те са неразбираеми. Те трябва да бъдат изчерпателни. Не е страшно ако името на клас достигне дори 50 и повече символа. Няма ограничения за броя на думите в името.
Това обаче не означава, че непременно трябва да правим прекалено дълги имена. Изискванията за дължината на имената на класовете зависят до голяма степен от броя на класовете, които се съдържат в програмата или библиотеката. Едни ще са те, ако в програмата има само няколко класа и съвсем други, ако програмата или библиотеката съдържа няколкостотин класа.
При разработката на библиотека, предназначена да се използва от различни програми, трябва да обърнем внимание на още един потенциален проблем. Класовете на библиотеката стават част от програмите, използващи библиотеката, така че ако даден библиотечен клас се нарича например POINTER, това ще попречи на потребителите да създадат собствен клас със същото име. За да се избегне този проблем, често към имената на всички класове от библиотеката се добавя общ префикс. Например всички класове при стандарта ОупънСтеп (МакОС X, Епъл) започват с префиксa NS[4] (например NSColorPanel, NSPopUpButton), а всички класове на библиотеката Qt (Trolltech) започват с префикса Q (например QPoint, QColor, QScrollBar).
Един друг проблем, с който се сблъскваме в практиката, е следният. Често пъти желаем да наречем обект от даден клас с името на класа. Например ако имаме клас Pointer, естествено е да поискаме да наречем някоя локална променлива от този клас със същото име. По този начин обаче възниква непозволен конфликт на имената. Той се избягва или като използваме префикс, както това бе показано в предния абзац, или като използваме различен регистър на буквите, например класът е Pointer, а променливата pointer или класът е POINTER, а променливата Pointer.
[4] Това съкращение произлиза от името на фирмата НекстСтеп, която разработи стандарта ОупънСтеп и която Епъл впоследствие закупи.