Você está na página 1de 4

Prog.

Orientada a Objetos Acadêmico: ___________________________


IP 02 Classes e Objetos

Os primeiros conceitos de Orientação a Objetos que devemos definir são os


objetos e classes. Ao ler um livro, estamos nos referindo a um objeto: o livro X.
O livro possui páginas, um texto. O livro possui algumas características como:
título, autor, editora, ano de publicação, número de páginas, etc. Então, podemos
dizer que vários livros tem essas características, mesmo sendo livros diferentes,
com textos diferentes. Se isso é verdade, podemos classificá-los, isto é,
colocá-los em classes.

Quando falamos a palavra livro, temos uma ideia de livro genérico, uma imagem,
um conceito de livro. Esse conceito de livro não existe no mundo real. Usamos
esse conceito para comunicar a ideia, chamamos isso de classe, pois usamos
isso como uma classificação. Essa classe pode definir qualquer livro, porém ao
colocarmos um título (ex.: Guia do Mochileiro das Galáxias), um autor (ex.:
Douglas Adams), etc. Definimos um objeto, pois, um objeto existe no mundo real,
é algo específico. A classe é uma abstração mental usada para classificar objetos
com características semelhantes.

Uma classe é definida com atributos e métodos. Os atributos são as


características dos objetos que fazem parte daquela classe. Por exemplo, um
atributo da classe livro é o título. Todo livro possui um título. Os atributos de uma
classe normalmente são substantivos, pois representam uma característica dos
objetos. Os métodos são as funções, os serviços, que o objeto fará. Por exemplo,
a classe livro, além dos atributos, pode oferecer um serviço de pesquisa. Nós,
como objetos da classe Usuário, podemos executar o serviço pesquisar para
encontrar alguma palavra, ou frase, neste livro. Os métodos normalmente são
verbos, pois eles representam uma ação.

Um objeto, ou instância, é uma “materialização” da classe, e assim pode ser


usado para armazenar os atributos e executar os métodos descritos nesta classe.
Essa criação do objeto implica no uso de memória no computador, isto é, um
objeto existe porque está armazenado na memória. Para manipular esses objetos
é necessário utilizar referências para eles. As referências aos objetos são
variáveis do tipo da sua classe. Os objetos são armazenados na memória pela
máquina virtual, e as referências (variáveis) apontam para os endereços de
memória desses objetos. Em outras linguagens (como C/C++), as referências de
memória podem ser ponteiros, mas no Java não tem a complexidade de alocação
e manipulação de memória.

Os atributos contidos numa classe são conhecidos como campos ou estados


daquela classe. Cada atributo deve ter um nome e ser de um tipo, que será de um
tipo de dado nativo da linguagem, ou uma classe existente, ou ainda uma classe
definida pelo programador.
Os métodos de uma classe são ações definidas para as instâncias dessa classe e
são geralmente chamados (ou executados) explicitamente a partir de outros
trechos de código, normalmente outros métodos. Podem ser chamados de outras
classes ou dos métodos que contém a própria classe. Opcionalmente, os métodos
podem receber parâmetros (ou argumentos) na forma de valores de tipos nativos
da linguagem ou de referências para outros objetos. Vários argumentos podem
ser fornecidos para um método. Esses argumentos devem ser descritos quando o
método é declarado. Métodos podem opcionalmente retornar valores ou
instâncias de classes. Métodos também podem não retornar nenhum valor. Em
Java os métodos apenas podem retornar um único valor, ou nenhum valor com a
declaração de tipo void. Python, diferentemente, permite que métodos retornem
múltiplos valores.

Representação Gráfica de Classes


Para melhor compreender as classes, usaremos uma forma gráfica de
representá-las. Esta representação é definida pela Unified Modeling Language
(UML). Veremos o básico desta forma de representação, e mais detalhes desta
linguagem serão foco da disciplina de análise e projeto de sistemas.

Esta representação de classe facilita a compreensão das suas características.


Serve para comunicar com outras pessoas detalhes do projeto de um sistema. Ela
representa os atributos e métodos de forma gráfica. Os métodos também podem
ser chamados de operações.

Sintaxe de Criação de Classes em Java


Os códigos das classes escritas pelo programador devem seguir as regras de
sintaxe do Java. Cada classe deve ser criada em um arquivo individual com o
mesmo nome da classe. Normalmente, cada arquivo contém uma classe publica,
como o exemplo:
public class Pessoa {

}
- public indica que a classe é pública para todo o programa Java;
- class é a palavra reservada para declaração de classes.
Referências:
Cardoso, Caíque. Orientação a Objetos na Prática - Aprendendo Orientação a
Objetos na Prática. Rio de Janeiro: Editora Ciência Moderna Ltda., 2006.
Santos, Rafael. Introdução à Programação Orientada a Objetos Usando Java. Rio
de Janeiro: Elsevier. 2 ed. 2013.

Lista de Exercícios
Resolva esta lista de exercícios com base nos conhecimentos apresentados,
desenhe os modelos de classe nesta instrução e depois implemente os códigos das
classes em Java seguindo os padrões de nomenclatura e correta identação do
código.

Q.03: Escreva um modelo para representar uma lâmpada que está à venda em um
supermercado. Que atributos devem ser representados por este modelo?

Q.04: Imagine uma lâmpada que pode ter três estados: apagada, acesa e meia-luz.
Usando o modelo Lampada (Q.01) como base, escreva o modelo
LampadaTresEstados.

Q.05: Descreva uma classe para representar pessoas no cadastro de uma


associação de esportes. Atualmente a associação usa a seguinte ficha de cadastro
de pessoas:

FICHA DE CADASTRO DE PESSOAS


Nome completo: ________________________ Data de nascimento: _________________
Sexo: _________________ CPF: _________________ RG: _________________
Endereço: _________________________________________________________________
Telefone: _________________ E-mail: __________________________________
Estado civil: _________________ Profissão: __________________________________
Nome do cônjuge: ___________________________________________________
Nome dos pais: ____________________________________________________________
Nome dos filhos: ___________________________________________________________
Observações: ______________________________________________________________

Q.06: Crie uma classe "Animal" que possua os atributos "especie", "nome" e
"idade".
Q.07: Crie uma classe "Pessoa" que possua os atributos "nome", "data de
nascimento" e "sexo".
Q.08: Crie uma classe "Carro" que possua os atributos "marca", "modelo", "ano" e
"cor".
Q.09: Crie uma classe "Livro" que possua os atributos "titulo", "autor", "editora",
"ano" e "isbn".

Você também pode gostar