There are, broadly speaking, two kinds of object-oriented programming:
The contents of this page will mostly have to do with the latter. See the “actor model” page for Smalltalk-like OOP.
The holy trinity of OOP languages are [[C++]], [[Java]], and [[C#]].
OOP languages proper are characterized by framing every aspect of the program as a [[class]]. In [[Java]], there is a special class which must have a static method called main. Java and C#, until recently, did not allow for [[free function]]s.