java - aula 4 - sobrecarga de construtores, uml e herança
DESCRIPTION
Java - Aula 4 - Sobrecarga de construtores, UML e Herança de ClassesTRANSCRIPT
![Page 1: Java - Aula 4 - Sobrecarga de construtores, UML e Herança](https://reader034.vdocument.in/reader034/viewer/2022051515/55387d5c4a79591b688b47d7/html5/thumbnails/1.jpg)
UNIDADE-SERRAProf. Moisés Omêna
Aula de Java 04
![Page 2: Java - Aula 4 - Sobrecarga de construtores, UML e Herança](https://reader034.vdocument.in/reader034/viewer/2022051515/55387d5c4a79591b688b47d7/html5/thumbnails/2.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022051515/55387d5c4a79591b688b47d7/html5/thumbnails/3.jpg)
Classes - UML
![Page 4: Java - Aula 4 - Sobrecarga de construtores, UML e Herança](https://reader034.vdocument.in/reader034/viewer/2022051515/55387d5c4a79591b688b47d7/html5/thumbnails/4.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022051515/55387d5c4a79591b688b47d7/html5/thumbnails/5.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022051515/55387d5c4a79591b688b47d7/html5/thumbnails/6.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022051515/55387d5c4a79591b688b47d7/html5/thumbnails/7.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022051515/55387d5c4a79591b688b47d7/html5/thumbnails/8.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022051515/55387d5c4a79591b688b47d7/html5/thumbnails/9.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022051515/55387d5c4a79591b688b47d7/html5/thumbnails/10.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022051515/55387d5c4a79591b688b47d7/html5/thumbnails/11.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022051515/55387d5c4a79591b688b47d7/html5/thumbnails/12.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022051515/55387d5c4a79591b688b47d7/html5/thumbnails/13.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022051515/55387d5c4a79591b688b47d7/html5/thumbnails/14.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022051515/55387d5c4a79591b688b47d7/html5/thumbnails/15.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022051515/55387d5c4a79591b688b47d7/html5/thumbnails/16.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022051515/55387d5c4a79591b688b47d7/html5/thumbnails/17.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022051515/55387d5c4a79591b688b47d7/html5/thumbnails/18.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022051515/55387d5c4a79591b688b47d7/html5/thumbnails/19.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022051515/55387d5c4a79591b688b47d7/html5/thumbnails/20.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022051515/55387d5c4a79591b688b47d7/html5/thumbnails/21.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022051515/55387d5c4a79591b688b47d7/html5/thumbnails/22.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022051515/55387d5c4a79591b688b47d7/html5/thumbnails/23.jpg)
Polimorfismo significa a capacidade deassumir muitas formas.
![Page 24: Java - Aula 4 - Sobrecarga de construtores, UML e Herança](https://reader034.vdocument.in/reader034/viewer/2022051515/55387d5c4a79591b688b47d7/html5/thumbnails/24.jpg)
HERANÇA
![Page 25: Java - Aula 4 - Sobrecarga de construtores, UML e Herança](https://reader034.vdocument.in/reader034/viewer/2022051515/55387d5c4a79591b688b47d7/html5/thumbnails/25.jpg)
Generalização - Especialização
![Page 26: Java - Aula 4 - Sobrecarga de construtores, UML e Herança](https://reader034.vdocument.in/reader034/viewer/2022051515/55387d5c4a79591b688b47d7/html5/thumbnails/26.jpg)
Herança Pessoa/Professor/Aluno
![Page 27: Java - Aula 4 - Sobrecarga de construtores, UML e Herança](https://reader034.vdocument.in/reader034/viewer/2022051515/55387d5c4a79591b688b47d7/html5/thumbnails/27.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022051515/55387d5c4a79591b688b47d7/html5/thumbnails/28.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022051515/55387d5c4a79591b688b47d7/html5/thumbnails/29.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022051515/55387d5c4a79591b688b47d7/html5/thumbnails/30.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022051515/55387d5c4a79591b688b47d7/html5/thumbnails/31.jpg)
Crie as classes abaixo definidas