Klasy lokalne mogą być tworzone wewnątrz funkcji i metod. Obiekty tych klas nie mogą istnieć poza tymi funkcjami i są niszczone wraz z zakończeniem ich wykonywania. Język programowania może ponadto narzucać dodatkowe ograniczenia na takie klasy.
Klasy anonimowe W większości języków programowania każda klasa posiada swą unikalną nazwę, dzięki czemu możliwe jest odwoływanie się do niej w różnych sytuacjach. Niektóre języki wspierają także tworzenie klas anonimowych, które nie posiadają nazwy.
Metaklasy Metaklasa to klasa, której instancjami są inne klasy. Ta specjalna konstrukcja umożliwia dostęp do właściwości oraz definicji klasy w trakcie wykonywania programu.
Klasy częściowe W przeciwieństwie do zwykłych klas, definicja klasy częściowej może być rozszerzona na więcej niż jeden plik. Umożliwia to lepsze radzenie sobie z dużymi ilościami kodu. Podczas kompilacji wszystkie częściowe definicje łączone są w kompletną klasę, dzięki czemu nie ma żadnych funkcjonalnych różnic między nimi a zwykłymi klasami.
Przykład Przykład klasy w języku Java:
public class Samochod {
private int predkoscMax; private String producent; private String model; private int predkosc;