A linguagem de programação Java tornou-se uma das linguagens mais populares da indústria de software. Os produtos de software desenvolvidos em Java estão sendo executados em diversos dispositivos, desde celulares e televisões até computadores de grande porte. Uma das características de Java que mais atrai a maioria dos programadores é o paradigma orientado a objetos, que permite a modularização do software e o reuso de suas partes em outros sistemas, aumentando, assim, a qualidade do produto e a produtividade da equipe de desenvolvimento. Entretanto, para que isso aconteça efetivamente, é necessário assimilar de maneira profunda os conceitos da orientação a objetos. Neste sentido, este livro oferece ao leitor uma combinação única entre os conceitos da orientação a objetos e as estruturas da linguagem Java, apresentando vários exemplos e estudos de casos práticos. Além disso, o leitor poderá praticar o que foi ensinado resolvendo diversos exercícios propostos no livro.