Object-oriented programming languages include SmallTalk, C , Java programming languages, and C # (a language provided in Microsoft .NET development environment). These languages support data and operational code packages in accordance with the requirements of abstract data types (commonly referred to as classes). In object-oriented programming languages, packaging capabilities are sufficient for moderate sizes. As long as the software module is maintained by a separate programmer, the package is fully sufficient for providing some intrinsic advantages. However, the package is not sufficient to support software repeated use and distributed systems.
Full text reading:
Software architecture training basic tutorial