04
Classes e Objetos
Tópicos Abordados
• Programação procedural e orientada a Objetos
• Classes
– Atributos e métodos
•
•
•
•
Objetos
Notação UML
Sobrecarga de métodos
Objetos e referências
– Heap e Stack
• Garbage collector
• Operador this
Programação Procedural
• Problemas
– Mudança de requisitos na aplicação
– Mudança de desenvolvedor
– Muitas pessoas responsáveis por colocar o mesmo código em vários lugares
1
Orientação a Objetos
• Benefícios
– Escrever menos código
– Concentrar responsabilidades nos locais certos
– Flexibilizar a aplicação
– Encapsular lógica de negócio
– Polimorfismo (variação do comportamento)
Classes: Estruturas de Dados
• Uma classe representa um tipo de dados
• É uma estrutura
Livro
Atributos
- ISBN
- Título
- Autor
- Editora
- Páginas
Classes e Seus Métodos
Emprestar
Devolver
Reservar
Obter Autor
Obter Título do Livro
Métodos
2
Atributos X Métodos
• Atributos
– Características da classe
– Representados por substantivos
• Métodos
– Operações que a classe é capaz de realizar
– Representados por verbos
Classes X Objetos
• A estrutura do Livro a qual nós nos referimos não representa um livro propriamente dito
• Ela é apenas uma estrutura (classe) usada como modelo para construir os livros propriamente ditos (objetos)
• Classe e Objeto são conceitos diferentes!
• Classes são usadas para instanciar objetos
Classes X Objetos livro1 Livro
Instancia
livro2
Objeto
Instancia
livro3
Objeto
Classe
Instancia
Objeto
3
Declarando Classes no Java
• No Java, classes são declaradas utilizando a palavra class public class Livro {
...
}
• Um arquivo .java pode ter apenas uma classe declarada como pública dentro dele
Declarando Métodos e Atributos public class Livro {
String isbn; int numPaginas;
...
Atributos
O Java inicializa os atributos automaticamente void emprestar(Cliente c) {
...
}
Métodos
void devolver() {
...
}
}
A Notação UML
• Unified Modeling Language
• Utilizada para documentar sistemas