Orientação a objetos
A programação orientada a objetos refere-se ao paradigma de programação onde o desenvolvimento do software é regido pelas definições e relacionamentos entre os objetos que compõem o mesmo.
Abstração
A abstração consiste em separar objetos de uma totalidade, a segmentação proporciona uma melhor utilização dos recursos da orientação a objetos. Nesse modo de pensar, nós isolamos os objetos que queremos representar do ambiente complexo em que se situam, e nesses objetos representamos somente as características que são relevantes para o problema em questão.
Encapsulamento
O encapsulamento tem como característica ocultar partes da implementação de uma entidade da orientação a objetos, desta forma construindo softwares que atinjam suas funcionaliddes e escondam os detalhes de implementação do mundo exterior. Os objetos encapsulados funcionam como uma caixa preta, sabemos sua interface externa, mas não precisamos nos preocuparmos com o que acontece dentro dela.