Upload
moises-omena
View
16.873
Download
0
Embed Size (px)
DESCRIPTION
Java - Aula 4 - Sobrecarga de construtores, UML e Herança de Classes
Citation preview
UNIDADE-SERRAProf. Moisés Omêna
Aula de Java 04
Sobrecarga de Construtorespublic class Professor{
// instance variables - replace the example below with your ownprivate 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;}
}
Classes - UML
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".
Classes - UML
"Na UML o nome de uma classe é um textocontendo letras e dígitos. UML sugerecapitalizar todas as primeiras letras decada palavra no nome (ex.: ``Lugar'',``DataReserva'').
É melhor também manter nomes de classeno singular, classes por default ``contem''mais de um objeto, o plural é implícito.".
[Nicolas Anquetil]
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.
Classes possibilitam
um modelo para criar quantos objetos você desejarde um tipo particular
especificar a estrutura e o comportamento(operações) dos objetos, que são instânciasdestas.
Criar objetos que possuirão todas as característicase comportamentos definidos pela classe
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.
Classes em UML
A representação de uma classe usa um retângulo dividido em três partes:
CachorroCorAlturaTamanhoPeso
LatirCorrerComer
Nome
Atributos
Métodos
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.
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
Relacionamento entre classes
Os objetos tem relações entre eles: um professor ministra uma disciplina paraalunos 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]
Tipos de relaçõesGeralmente 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çãoGeneralização (herança)Dependências
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.
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.
Diagrama de classes
lista todos os conceitos do domínio que serãoimplementados no sistema e as relações entre osconceitos.
define a estrutura do sistema a desenvolver.
O diagrama de classes não surge do nada ele éconsequência do prévio levantamento derequisitos, definição de casos de usos e classes.
exemploSe você tivesse que desenvolver um sistema para
automatizar um consultório dentário. As etapas básicasenvolvidas 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 :
Após toda esta análise você chega no diagrama de classes do sistema (representado abaixo a título de exemplo ilustrativo)
Herança em Java
A Herança provém de uma classe que herdaatributos e métodos de outras classes.Para facilitar o estudo de caso, darei umexemplo de um Microcomputador.
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.
Ex: a subclasse Utilitário herda todos os atributos e operações da superclasse Veículos.
UTILITÁRIOS PASSAGEIROS ESPORTE PASSEIO
VEÍCULOS
GE
NE
RA
LIZA
ÇÃ
OE
SP
EC
IALIZA
ÇÃ
O
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.
Herança
1. Mecanismo que permite ocompartilhamento de característicascomuns a partir de uma superclasse
2. Subclasses herdam propriedades daSuperclasse
3. Em Modelo Conceitual:Superclasses são TiposSubclasses são Subtipos
Polimorfismo significa a capacidade deassumir muitas formas.
HERANÇA
Generalização - Especialização
Herança Pessoa/Professor/Aluno
Classe Pessoapublic 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;}
}
Classe alunopublic 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) { }}
Classe Professorpublic 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;}public void setCodigo (int val) {
Utilizar BlueJ para criar classes abaixosendo que pessoa física e pessoa jurídicaherdam de pessoa, crie também osdiferentes construtores das mesmas
PessoaPessoa FísicaPessoa Jurídica
Crie as classes abaixo definidas