O documento discute conceitos de programação orientada a objetos em Java, incluindo classes, atributos, métodos, herança, polimorfismo e diagrama de classes. Ele apresenta exemplos de como criar classes Pessoa, Aluno e Professor com herança, definindo atributos e métodos para cada uma.
2. Sobrecarga de Construtores
public class Professor
{
// instance variables - replace the example below with your own
private int codigo;
private String nome;
private String disciplina;
private String turno;
public Professor()
{
}
public Professor(int cod, String nom){
this.codigo = cod;
this.nome= nom;
}
}
4. Classes
Em termos de POO para poder tratar os
objetos começamos criando classes , neste
caso irei criar a classe chamada Cachorro.
"Uma classe representa um conjunto de
objetos que possuem comportamentos e
características comuns".
5. Classes - UML
"Na UML o nome de uma classe é um texto
contendo letras e dígitos. UML sugere
capitalizar todas as primeiras letras de
cada palavra no nome (ex.: ``Lugar'',
``DataReserva'').
É melhor também manter nomes de classe
no singular, classes por default ``contem''
mais de um objeto, o plural é implícito.".
[Nicolas Anquetil]
6. Propriedades e Métodos
quando definimos uma classe precisamos definir
duas coisas:
Propriedades - Informações específicas relacionadas a
uma classe de objeto. São as características dos
objetos que as classes representam. Ex Cor , altura ,
tamanho , largura , etc...
Métodos: São ações que os objetos de uma classe
podem realizar. Ex: Latir , correr , sentar , comer, etc.
7. Classes possibilitam
um modelo para criar quantos objetos você desejar
de um tipo particular
especificar a estrutura e o comportamento
(operações) dos objetos, que são instâncias
destas.
Criar objetos que possuirão todas as características
e comportamentos definidos pela classe
8. Aqui temos Órion
Um objeto da classe Cachorro.
Em termos de POO acabamos de criar uma
instância da classe Cachorro e a chamamos
Órion.
Quando criamos uma nova instância de uma classe
dizemos que estamos instanciando a classe.
9. Classes em UML
A representação de uma classe usa um
retângulo dividido em três partes:
Cachorro Nome
Cor
Altura
Tamanho Atributos
Peso
Latir
Correr
Métodos
Comer
10. atributos e operações
Os diagrama se classes ilustram atributos e operações de
uma classe e as restrições como que os objetos podem
ser conectados ; descrevem também os tipos de objetos
no sistema e os relacionamentos entre estes objetos que
podem ser : associações e abstrações.
11. Visibilidade
a visibilidade dos atributos e operações em
uma classe utiliza-se as seguintes marcas
e significados:
+ público - visível em qualquer classe
# protegido - qualquer descendente pode usar
- privado - visível somente dentro da classe
12. Relacionamento entre classes
Os objetos tem relações entre eles: um
professor ministra uma disciplina para
alunos numa sala, um cliente faz uma
reserva de alguns lugares para uma data,
etc. Essas relações são representadas
também no diagrama de classe.
[Nicolas Anquetil]
13. Tipos de relações
Geralmente as classes não estão sós e se relacionam entre
si. O relacionamento e a comunicação entre as classes
definem responsabilidades
A UML reconhece três tipos mais importantes de relações:
dependência, associação e generalização (ou herança).
Associações : Agregação e composição
Generalização (herança)
Dependências
14. Representações - notação :
Associação : São relacionamentos
estruturais entre instâncias e
especificam que objetos de uma classe
estão ligados a objetos de outras
classes.
A associação pode existir entre
classes ou entre objetos. Uma
associação entre a classe Professor e a
classe disciplina (um professor ministra
uma disciplina) significa que uma
instância de Professor (um professor
específico) vai ter uma associação com
uma instância de Disciplina.
Dependência - São relacionamentos de
utilização no qual uma mudança na
especificação de um elemento pode
alterar a especificação do elemento
dependente. A dependência entre
classes indica que os objetos de uma
classe usam serviços dos objetos de
outra classe.
15. Representações - notação :
Generalização (herança : simples ou composta) - Relacionamento entre
um elemento mais geral e um mais específico. Onde o elemento mais
específico herda as propriedades e métodos do elemento mais geral.
A relação de generalização também é conhecida como herança no
modelo a objetos.
Agregação Regular - tipo de associação ( é parte de , todo/parte) onde
o objeto parte é um atributo do todo ; onde os objetos partes somente
são criados se o todo ao qual estão agregados seja criado. Pedidos é
composto por itens de pedidos.
Composição - Relacionamento entre um elemento ( o todo) e outros
elementos (as partes) onde as parte só podem pertencer ao todo e
são criadas e destruídas com ele.
16. Diagrama de classes
lista todos os conceitos do domínio que serão
implementados no sistema e as relações entre os
conceitos.
define a estrutura do sistema a desenvolver.
O diagrama de classes não surge do nada ele é
consequência do prévio levantamento de
requisitos, definição de casos de usos e classes.
17. exemplo
Se você tivesse que desenvolver um sistema para
automatizar um consultório dentário. As etapas básicas
envolvidas seriam:
– Levantamento e análise de requisitos do sistema a ser
desenvolvido. Entrevista com o dentista(s) e com as pessoas que
trabalham no consultório
– Definição dos elementos do sistema : Paciente , agenda ,
dentista , serviço , contrato , consulta , pagamento , etc..
– Definição das classes : paciente , dentista , exame , agenda ,
serviço
– Definir os atributos e métodos das classes :
18. Após toda esta análise você chega no diagrama de classes do
sistema (representado abaixo a título de exemplo ilustrativo)
19. Herança em Java
A Herança provém de uma classe que herda
atributos e métodos de outras classes.
Para facilitar o estudo de caso, darei um
exemplo de um Microcomputador.
20. herança em orientação a objetos representa a
implementação da generalização.
Herança é o compartilhamento de atributos e operações entre
classes com base em um relacionamento hierárquico.
ESPECIALIZAÇÃO
GENERALIZAÇÃO
VEÍCULOS
UTILITÁRIOS PASSAGEIROS ESPORTE PASSEIO
Ex: a subclasse Utilitário herda todos os atributos e operações da
superclasse Veículos.
21. generalização e herança
1. Generalização é a relação entre uma classe e uma ou
mais versões refinadas dessa classe.
2. A classe que está sendo refinada é chamada de
superclasse e cada versão refinada é subclasse.
3. Os atributos e as operações da superclasse podem ser
exibidos em suas subclasses, conseqüentemente, cada
subclasse é considerada herdeira dos recursos da
superclasse.
4. Você pode organizar as classes, usando a herança para
compartilhar a estrutura comum.
5. Um link de generalização significa que uma classe pode
herdar uma série de atributos e operações da classe pai.
22. Herança
1. Mecanismo que permite o
compartilhamento de características
comuns a partir de uma superclasse
2. Subclasses herdam propriedades da
Superclasse
3. Em Modelo Conceitual:
Superclasses são Tipos
Subclasses são Subtipos
27. Classe Pessoa
public class Pessoa {
private int codigo;
private int nome;
public Pessoa () {
}
public int getCodigo () {
return codigo;
}
public void setCodigo (int val) {
this.codigo = val;
}
public int getNome () {
return nome;
}
public void setNome (int val) {
this.nome = val;
}
}
28. Classe aluno
public class Aluno extends Pessoa {
private String Turma;
public Aluno () {
}
public String getTurma () {
return Turma;
}
public void setTurma (String val) {
this.Turma = val; }
public int getCodigo () {
return 0;
}
public void setCodigo (int val) {
}
public int getNome () {
return 0; }
public void setNome (int val) { }
}
29. Classe Professor
public class Professor extends Pessoa {
private String disciplina;
private int cargaHoraria;
public Professor () {
}
public int getCargaHoraria () {
return cargaHoraria;
}
public void setCargaHoraria (int val) {
this.cargaHoraria = val;
}
public String getDisciplina () {
return disciplina;
}
public void setDisciplina (String val) {
this.disciplina = val;
}
public int getCodigo () {
return 0;
}
30. Utilizar BlueJ para criar classes abaixo
sendo que pessoa física e pessoa jurídica
herdam de pessoa, crie também os
diferentes construtores das mesmas
Pessoa
Pessoa Física
Pessoa Jurídica