Aula de Java 04




     UNIDADE-SERRA
    Prof. Moisés Omêna
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;
    }
}
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 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]
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ê 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
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:


 Cachorro         Nome

 Cor
 Altura
 Tamanho          Atributos
 Peso

 Latir
 Correr
                  Métodos
 Comer
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 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]
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
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ã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.
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 :
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 herda
  atributos e métodos de outras classes.
  Para facilitar o estudo de caso, darei um
  exemplo 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.




                                                    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.
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       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
Polimorfismo significa a capacidade de
 assumir muitas formas.
HERANÇA
Generalização - Especialização
Herança Pessoa/Professor/Aluno
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;
    }
}
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) { }
}
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;
  }
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
Crie as classes abaixo definidas

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

  • 1.
    Aula de Java04 UNIDADE-SERRA Prof. Moisés Omêna
  • 2.
    Sobrecarga de Construtores publicclass 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; } }
  • 3.
  • 4.
    Classes Em termos dePOO 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 "NaUML 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 quandodefinimos 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 modelopara 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 Umobjeto 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 Arepresentaçã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 Osdiagrama 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 dosatributos 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 Osobjetos 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 Geralmenteas 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 listatodos 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ê tivesseque 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 estaanálise você chega no diagrama de classes do sistema (representado abaixo a título de exemplo ilustrativo)
  • 19.
    Herança em Java AHeranç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çãoa 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
  • 23.
    Polimorfismo significa acapacidade de assumir muitas formas.
  • 24.
  • 25.
  • 26.
  • 27.
    Classe Pessoa public classPessoa { 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 classAluno 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 classProfessor 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 paracriar 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
  • 31.
    Crie as classesabaixo definidas