В объектно-ориентированном программировании говорят, что язык программирования имеет сообщения первого класса или динамические сообщения , если при вызове метода не только принимающий объект и список параметров могут динамически изменяться (т. е. привязываться к переменной или вычисляться как выражение), но и конкретный вызываемый метод.
Типизированные объектно-ориентированные языки программирования, такие как Java и C++ , часто не поддерживают методы первого класса. [1] Smalltalk поддерживает их только нетипизированным способом. [2] В Objective-C ( Cocoa ) можно использовать NSInvocation для представления сообщений первого класса способом, который учитывает типы во время выполнения; однако безопасное использование по-прежнему зависит от программиста.
Некоторый теоретический прогресс был достигнут для поддержки первоклассных сообщений безопасным с точки зрения типов образом, но ни одна из предложенных систем не была реализована на языке программирования, возможно, из-за их сложности. [3]