java
Objetos são instâncias de classes, que determinam qual informação um objeto contém e como ele
pode manipulá-la.
Um dos grandes diferenciais da programação orientada a objetos em relação a outros paradigmas
de programação que também permitem a definição de estruturas e operações sobre essas estruturas
está no conceito de herança, mecanismo através do qual definições existentes podem ser facilmente
estendidas. Juntamente com a herança deve ser enfatizada a importância do polimorfismo, que permi- te selecionar funcionalidades que um programa irá utilizar de forma dinâmica, durante sua execução.
1.1 Classes
A definição de classes e seus inter-relacionamentos é o principal resultado da etapa de projeto de
software. Em geral, esse resultado é expresso em termos de alguma linguagem de modelagem, tal
como UML.
Uma classe é um gabarito para a definição de objetos. Através da definição de uma classe,
descreve-se que propriedades — ou atributos — o objeto terá.
Além da especificação de atributos, a definição de uma classe descreve também qual o compor- tamento de objetos da classe, ou seja, que funcionalidades podem ser aplicadas a objetos da classe.
Essas funcionalidades são descritas através de métodos. Um método nada mais é que o equivalente
a um procedimento ou função, com a restrição que ele manipula apenas suas variáveis locais e os
atributos que foram definidos para a classe.
Uma vez que estejam definidas quais serão as classes que irão compor uma aplicação, assim
como qual deve ser sua estrutura interna e comportamento, é possível criar essas classes em Java.
Na Unified Modeling Language (UML), a representação para uma classe no diagrama de classes
é tipicamente expressa na forma gráfica, como mostrado na Figura 1.1.
Como se observa nessa figura, a especificação de uma classe é composta por três regiões: o nome
da