Abstraction, encapsulation, polymorphism, і inheritance є чотири основні теоретичні принципи object-oriented programming. Але Java також працюють з трьома іншими OOP-концептами: поєднання, агрегації і композиції.