31
UNIDADE-SERRA Prof. Moisés Omêna Aula de Java 04

Java - Aula 4 - Sobrecarga de construtores, UML e Herança

Embed Size (px)

DESCRIPTION

Java - Aula 4 - Sobrecarga de construtores, UML e Herança de Classes

Citation preview

Page 1: Java - Aula 4 - Sobrecarga de construtores, UML e Herança

UNIDADE-SERRAProf. Moisés Omêna

Aula de Java 04

Page 2: Java - Aula 4 - Sobrecarga de construtores, UML e Herança

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;}

}

Page 3: Java - Aula 4 - Sobrecarga de construtores, UML e Herança

Classes - UML

Page 4: Java - Aula 4 - Sobrecarga de construtores, UML e Herança

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".

Page 5: Java - Aula 4 - Sobrecarga de construtores, UML e Herança

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]

Page 6: Java - Aula 4 - Sobrecarga de construtores, UML e Herança

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.

Page 7: Java - Aula 4 - Sobrecarga de construtores, UML e Herança

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

Page 8: Java - Aula 4 - Sobrecarga de construtores, UML e Herança

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.

Page 9: Java - Aula 4 - Sobrecarga de construtores, UML e Herança

Classes em UML

A representação de uma classe usa um retângulo dividido em três partes:

CachorroCorAlturaTamanhoPeso

LatirCorrerComer

Nome

Atributos

Métodos

Page 10: Java - Aula 4 - Sobrecarga de construtores, UML e Herança

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.

Page 11: Java - Aula 4 - Sobrecarga de construtores, UML e Herança

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

Page 12: Java - Aula 4 - Sobrecarga de construtores, UML e Herança

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]

Page 13: Java - Aula 4 - Sobrecarga de construtores, UML e Herança

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

Page 14: Java - Aula 4 - Sobrecarga de construtores, UML e Herança

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.

Page 15: Java - Aula 4 - Sobrecarga de construtores, UML e Herança

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.

Page 16: Java - Aula 4 - Sobrecarga de construtores, UML e Herança

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.

Page 17: Java - Aula 4 - Sobrecarga de construtores, UML e Herança

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 :

Page 18: Java - Aula 4 - Sobrecarga de construtores, UML e Herança

Após toda esta análise você chega no diagrama de classes do sistema (representado abaixo a título de exemplo ilustrativo)

Page 19: Java - Aula 4 - Sobrecarga de construtores, UML e Herança

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.

Page 20: Java - Aula 4 - Sobrecarga de construtores, UML e Herança

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

Page 21: Java - Aula 4 - Sobrecarga de construtores, UML e Herança

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.

Page 22: Java - Aula 4 - Sobrecarga de construtores, UML e Herança

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

Page 23: Java - Aula 4 - Sobrecarga de construtores, UML e Herança

Polimorfismo significa a capacidade deassumir muitas formas.

Page 24: Java - Aula 4 - Sobrecarga de construtores, UML e Herança

HERANÇA

Page 25: Java - Aula 4 - Sobrecarga de construtores, UML e Herança

Generalização - Especialização

Page 26: Java - Aula 4 - Sobrecarga de construtores, UML e Herança

Herança Pessoa/Professor/Aluno

Page 27: Java - Aula 4 - Sobrecarga de construtores, UML e Herança

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;}

}

Page 28: Java - Aula 4 - Sobrecarga de construtores, UML e Herança

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) { }}

Page 29: Java - Aula 4 - Sobrecarga de construtores, UML e Herança

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) {

Page 30: Java - Aula 4 - Sobrecarga de construtores, UML e Herança

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

Page 31: Java - Aula 4 - Sobrecarga de construtores, UML e Herança

Crie as classes abaixo definidas