La programación orientada a objetos es un enfoque que trata los programas como objetos con atributos y métodos que pueden aplicarse a estos objetos, permitiendo a dichos atributos ser heredados por otros objetos. El lenguaje Java es un ejemplo de un lenguaje que emplea esté paradigma. Sin embargo, Java es un lenguaje multi-paradigma y también utiliza algunos conceptos familiares para la Programación Estructurada.
La programación estructurada, por otra parte, es un tipo anterior de programación la cual es imperativa, donde las declaraciones del código se ponen en procedimientos y funciones, que se pueden llamar desde cualquier parte del programa cuantas veces sea necesario. C es un lenguaje estructurado.