Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define...
Transcript of Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define...
![Page 1: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/1.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
CapCapíítulo 13tulo 13EncapsulamentoEncapsulamento
![Page 2: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/2.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Objetivos do Capítulo
� Indicar a importância do mecanismo de encapsulamento no contexto do desenvolvimento de software utilizando a programação orientada a objetos.
� Apresentar os métodos de leitura de escrita e as convenções aplicáveis a eles.
� Explorar diversas formas de validação de dados que podem ser realizadas nos métodos de escrita e nos construtores.
� Analisar o uso de atributos estáticos, métodos estáticos e atributos constantes.
![Page 3: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/3.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Introdução
� Classes: tipos de membros
� Atributos
� Construtores
� Métodos
![Page 4: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/4.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Introdução
� Níveis de visibilidade
� Definição: intensidade das restrições
� Quantidade: 4
![Page 5: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/5.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Introdução
� Encapsulamento
� Mecanismo da POO
� Define níveis de visibilidade
� Tipos:
� Público
� Privado
� Protegido
� Pacote (padrão)
![Page 6: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/6.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Introdução
� Diretivas – qualificadores – modificadores de acesso
� Public
� Protected
� Private
![Page 7: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/7.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Introdução
� Encapsulamento público
� O mais permissivo
� Acesso externo livre
� Regra geral: inadequado para atributos
� Encapsulamento privado
� O mais restritivo
� Acesso externo bloqueado
� Regra geral: inadequado para construtores
� Encapsulamento protegido
� Restrição moderada
� Acesso externo limitado ao pacote e a subclasses
![Page 8: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/8.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Introdução
![Page 9: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/9.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Introdução
![Page 10: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/10.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Atributos Públicos e Quebra de Integridade de Conteúdo
� Responsabilidade das classes
� Manter a integridade do conteúdo de seus atributos
� Atributos públicos têm acesso externo livre
![Page 11: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/11.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Atributos Públicos e Quebra de Integridade de Conteúdo
� Código 13.1 – Professor.java
� Implemente a classe Professor conforme representação.
� Código 13.2 – TestaProfessor.java
� Implemente a classe TestaProfessor conforme representação.
� Implemente o seguinte procedimento no seu método main( ):
� Instancie um objeto da classe Professor.
� Recupere e exiba o conteúdo de seus atributos.
�Modifique o conteúdo de seus atributos com valores inválidos.
� Recupere e exiba o conteúdo de seus atributos.
![Page 12: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/12.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Bloqueio do Acesso Externo aos Atributos
� Prescrição
� Atributos privados
� Problema
� Atributos totalmente inacessíveis
![Page 13: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/13.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Bloqueio do Acesso Externo aos Atributos
� Código 13.3 – Aluno.java
� Implemente a classe Aluno conforme representação.
� Código 13.4 – TestaAluno.java
� Implemente a classe TestaAluno conforme representação.
� Implemente o seguinte procedimento no seu método main( ):
� Instancie um objeto da classe Aluno.
� Recupere e exiba o conteúdo de seus atributos.
�Modifique o conteúdo de seus atributos com valores inválidos.
� Recupere e exiba o conteúdo de seus atributos.
![Page 14: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/14.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Bloqueio do Acesso Externo aos Atributos
![Page 15: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/15.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Métodos de Leitura e Escrita
� Finalidade
� Intermediar o acesso aos atributos
� Método de leitura
� Recupera o conteúdo
� Prefixo: get
� Método de escrita
� Modifica o conteúdo
� Prefixo: set
![Page 16: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/16.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Métodos de Leitura e Escrita
� Código 13.5 – Curso.java
� Implemente a classe Curso conforme representação.
� Código 13.6 – TestaCurso.java
� Implemente a classe TestaCurso conforme representação.
� Implemente o seguinte procedimento no seu método main( ):
� Instancie um objeto da classe Curso.
� Recupere e exiba o conteúdo de seus atributos.
�Modifique o conteúdo de seus atributos com valores válidos.
� Recupere e exiba o conteúdo de seus atributos.
�Modifique o conteúdo de seus atributos com valores inválidos.
� Recupere e exiba o conteúdo de seus atributos.
![Page 17: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/17.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Métodos de Leitura e Escrita
![Page 18: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/18.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Validações nos Métodos de Escrita
� Finalidade:
� Impedir a gravação de dados inválidos nos atributos.
![Page 19: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/19.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Validações nos Métodos de Escrita
o Código 13.7 – Disciplina.java
– Implemente a classe Disciplina conforme representação.
– Implementar validações nos métodos de escrita:
• Código: deve ser um número inteiro positivo.
• Descrição: deve conter de 5 a 50 caracteres.
o Código 13.8 – TestaDisciplina.java
– Implemente a classe TestaDisciplina conforme representação.
– Implemente o seguinte procedimento no seu método main( ):
• Instancie um objeto da classe Disciplina.
• Recupere e exiba o conteúdo de seus atributos.
• Modifique o conteúdo de seus atributos com valores válidos.
• Recupere e exiba o conteúdo de seus atributos.
• Modifique o conteúdo de seus atributos com valores inválidos.
• Recupere e exiba o conteúdo de seus atributos.
![Page 20: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/20.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Validações nos Métodos de Escrita
![Page 21: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/21.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Uso de Unchecked Exceptions nos Métodos de Escrita
� Finalidade
� Sinalizar quando um dado inválido for identificado
![Page 22: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/22.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Uso de Unchecked Exceptions nos Métodos de Escrita
� Código 13.9 – Livro.java
� Implemente a classe Livro conforme representação.
� Regras para a validação dos dados:
� Código: deve ser um número inteiro positivo
� Título: deve conter de 5 a 50 caracteres
� Disparar unchecked exceptions nos métodos de escrita
� setCodigo( ): IllegalArgumentException
� setTitulo( ): NullPointerException e IllegalArgumentException
![Page 23: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/23.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Uso de Unchecked Exceptions nos Métodos de Escrita
� Código 13.10 – TestaLivro.java
� Implemente a classe TestaLivro conforme representação.
� Implemente o seguinte procedimento no seu método main( ):
� Instancie um objeto da classe Livro.
� Recupere e exiba o conteúdo de seus atributos.
�Modifique o conteúdo de seus atributos com valores válidos.
� Recupere e exiba o conteúdo de seus atributos.
�Modifique o conteúdo de seus atributos com valores inválidos.
� Recupere e exiba o conteúdo de seus atributos.
![Page 24: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/24.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Uso de Unchecked Exceptions nos Métodos de Escrita
� Código 13.11 – TestaLivroProtegido.java
� Implemente a classe TestaLivroProtegido.
� Implemente o seguinte procedimento no seu método main( ):
� Instancie um objeto da classe Livro.
� Recupere e exiba o conteúdo de seus atributos.
�Modifique o conteúdo de seus atributos com valores inválidos.
� Recupere e exiba o conteúdo de seus atributos.
� Proteja as instruções que invocam os métodos de escrita.
� Tratamento para RuntimeException
![Page 25: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/25.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Uso de Unchecked Exceptions nos Métodos de Escrita
� Código 13.12 – CadastroLivros.java
� Implemente a classe CadastroLivros.
� Implemente o seguinte procedimento no seu método main( ):
� Crie um vetor capaz de armazenar até 100 objetos da classe Livro.
� Permita que o usuário cadastre até 100 livros.
o Grave os dados de cada livro em um objeto da classe Livro.
o Grave todos os objetos criados no vetor supracitado.
� Se o usuário informar um dado inválido, solicite-o novamente.
� Ao final, exiba um relatório de todos os livros cadastrados.
![Page 26: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/26.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Uso de Unchecked Exceptions nos Métodos de Escrita
![Page 27: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/27.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Uso de Checked Exceptions nos Métodos de Escrita
� Finalidade
� Tornar o tratamento obrigatório
![Page 28: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/28.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Uso de Checked Exceptions nos Métodos de Escrita
� Código 13.13 – Autor.java
� Implemente a classe Autor conforme representação.
� Regras para a validação dos dados:
� Código: deve ser um número inteiro positivo
�Nome: deve conter de 5 a 50 caracteres
� Disparar checked exceptions nos métodos de escrita
� Sinalizar toda exceção como Exception
![Page 29: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/29.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Uso de Checked Exceptions nos Métodos de Escrita
� Código 13.14 – CadastroAutores.java
� Implemente a classe CadastroAutores.
� Implemente o seguinte procedimento no seu método main( ):
� Crie um vetor capaz de armazenar até 100 objetos da classe Autor.
� Permita que o usuário cadastre até 100 autores.
o Grave os dados de cada autor em um objeto da classe Autor.
o Grave todos os objetos criados no vetor supracitado.
� Se o usuário informar um dado inválido, solicite-o novamente.
� Ao final, exiba um relatório de todos os autores cadastrados.
![Page 30: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/30.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Uso de Checked Exceptions nos Métodos de Escrita
![Page 31: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/31.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Representação Textual Através do Método toString( )
� Contexto
� Todas as classes derivam de Object
� Um dos métodos de Object é o toString( )
� Finalidade: representação textual do objeto
� Assinatura:
public String toString( )
� Retorno padrão:
o O nome da classe do objeto
o @
o Representação hexadecimal do código de hash do objeto
![Page 32: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/32.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Representação Textual Através do Método toString( )
� Código 13.15 – ImprimeLivro.java
� Implemente a classe ImprimeLivro.
� Implemente o seguinte procedimento no seu método main( ):
� Instancie um objeto da classe Livro.
�Modifique o conteúdo de seus atributos com valores válidos.
�Ordene a impressão deste objeto através de um diálogo.
� Instancie outro objeto da classe Livro.
�Modifique o conteúdo de seus atributos com valores válidos.
�Ordene a impressão deste objeto através de um diálogo.
![Page 33: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/33.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Representação Textual Através do Método toString( )
� Código 13.16 – Assunto.java
� Implemente a classe Assunto conforme representação.
� Retorno do método toString( ):
�Nome da classe
�Um espaço
� Código
� Dois-pontos
�Um espaço
� Descrição
![Page 34: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/34.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Representação Textual Através do Método toString( )
� Código 13.17 – TestaAssunto.java
� Implemente a classe TestaAssunto.
� Implemente o seguinte procedimento no seu método main( ):
� Instancie um objeto da classe Assunto.
�Ordene a impressão deste objeto através de um diálogo.
� Instancie outro objeto da classe Livro.
�Ordene a impressão deste objeto através de um diálogo.
![Page 35: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/35.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Validação de Dados no Construtor
� Motivação
� Forma alternativa ao uso de métodos de escrita
� Garantir a validade do conteúdo dos atributos desde o princípio
![Page 36: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/36.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Validação de Dados no Construtor
� Código 13.18 – Computador.java
� Implemente a classe Computador conforme representação.
� Implementar validações no construtor:
� Código: deve ser um número inteiro positivo.
� Descrição: deve conter de 5 a 50 caracteres.
� Sinalizar exceções no construtor com Exception
� Retorno do método toString( ):
� <Nome da classe> <código>: <descrição>
![Page 37: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/37.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Validação de Dados no Construtor
� Código 13.19 – CadastroComputadores.java
� Implemente a classe CadastroComputadores.
� Implemente o seguinte procedimento no seu método main( ):
� Crie um vetor para armazenar até 100 objetos da classe Computador.
� Permita que o usuário cadastre até 100 computadores.
o Grave os dados de cada computador em um objeto da classe Computador.
o Grave todos os objetos criados no vetor supracitado.
� Se o usuário informar um dado inválido, solicite-o novamente.
� Ao final, exiba um relatório de todos os computadores cadastrados.
![Page 38: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/38.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Validação de Dados no Construtor
![Page 39: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/39.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Relação Assimétrica entre Atributos e Métodos de L/E
� Atributo sem método de Leitura
� Atributo sem método de Escrita
� Atributo sem métodos de L/E
� Atributo com métodos de escrita sobrecarregados
� Atributo manipulado por métodos diversos
� Método de leitura sem atributo
![Page 40: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/40.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Relação Assimétrica entre Atributos e Métodos de L/E
� Código 13.20 – Conta.java
� Implemente a classe Conta conforme representação.
� Implementar validações no construtor:
�Número: deve ser um número inteiro positivo.
� Sinalizar exceções com Exception
� Retorno do método getDisponível( ): saldo + limite
� Validações nos métodos de escrita:
� Limite: deve ser um valor maior ou igual a zero.
� Sinalizar exceções com Exception
� Validações no método sacar( ):
� Valor: não deve ser superior à soma do saldo e do limite.
� Sinalizar exceções com Exception
� Retorno do método toString( ):
� Conta <número> : <saldo> || <limite> || <disponível>
![Page 41: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/41.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Relação Assimétrica entre Atributos e Métodos de L/E
� Código 13.21 – OperadorConta.java
� Implemente a classe OperadorConta.
� Implemente o seguinte procedimento no seu método main( ):
� Declare um objeto da classe Conta .
� Solicite o número da conta e instancie o objeto supracitado.
o Número inválido: exiba uma mensagem de erro e solicite-o novamente.
� Solicite o limite da conta e o grave no objeto supracitado.
o Limite inválido: exiba uma mensagem de erro e solicite-o novamente.
� Solicite a operação:
o D = Depósito
o S = Saque
�Operação inválida: mensagem de erro e nova solicitação.
� Solicite o valor da operação.
� Realize a operação utilizando o objeto supracitado.
� Exiba o novo estado da conta.
![Page 42: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/42.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Relação Assimétrica entre Atributos e Métodos de L/E
![Page 43: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/43.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Métodos Estáticos
� Introdução
� Métodos de classe
� Tarefas independentes das instâncias
� Sintaxe:
[encapsulamento] static <tipo> <nome>([parâmetros]){
}
![Page 44: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/44.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Métodos Estáticos
� Código 13.22 – Dialogo.java
� Especificação do método captar( ):
� Solicitar um dado através de um diálogo gráfico.
� Parâmetros:
o mensagem: o texto a ser exibido no diálogo.
� Retorno: o dado informado.
� Especificação do método exibir( ):
� Exibir um texto através de um diálogo gráfico.
� Parâmetros:
o texto: o texto a ser exibido no diálogo.
![Page 45: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/45.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Métodos Estáticos
� Código 13.23 – TestaDialogo.java
� Solicite o nome do usuário.
� Exiba uma mensagem com este nome.
![Page 46: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/46.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Atributos Estáticos
� Introdução
� Atributo de classe
� Informação compartilhada entre instâncias
� Um valor único
![Page 47: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/47.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Atributos Estáticos
� Sintaxe:
[encapsulamento] static <tipo> <nome>;
� Exemplo:
public class Aliquota {
public static double ir;
public static double inss;
}
� Formas de acesso:
Aliquota.inss = 11;
Aliquota aliquota = new Aliquota( );
aliquota.inss = 11;
![Page 48: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/48.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Atributos Estáticos
� Código 13.24 – Doenca.java
� Especificação do construtor:
� Inicializar os atributos codigo e descricao.
� Incrementar o atributo quantidade.
� Especificação do método toString( ):
� Doença <código>: <descrição>
![Page 49: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/49.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Atributos Estáticos
� Código 13.25 – TestaDoenca.java
� Crie duas instâncias da classe doença.
� Exibia a representação textual destas instâncias.
� Exiba a quantidade de instâncias criadas.
![Page 50: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/50.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Atributos Constantes
� Introdução
� Conteúdo imutável
� Sintaxe:
[encapsulamento] final <tipo> <nome> = <valor>;
![Page 51: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/51.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Atributos Constantes
� Código 13.26 – Atleta.java
� Especificação do construtor:
� Inicializar atributos codigo e descricao.
� Especificação do método toString( ):
� <nome> - <sexo>
![Page 52: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/52.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Atributos Constantes
� Código 13.27 – TestaAtleta.java
� Crie duas instâncias da classe Atleta.
� Exibia a representação textual destas instâncias.
![Page 53: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/53.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Métodos de Leitura para Atributos Booleanos
� Convenção de nomes: regra geral
� Método de leitura: prefixo “get”
� Método de escrita: prefixo “set”
� Exemplo:
private String nome;
public String getNome( ) {
}
public void setNome(String nome) {
}
![Page 54: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/54.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Métodos de Leitura para Atributos Booleanos
� Convenção de nomes: exceção
� Atributos booleanos: prefixo “is”
![Page 55: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/55.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Exercício 1
� Crie um novo aplicativo que permita cadastrar até 1.000 gêneros de filmes.
� Este aplicativo deve ser composto pelas classes Genero e CadastroGeneros.
� Especificações da classe Genero.
� O construtor deve apenas inicializar seu atributo descricao.
� Os métodos de escrita não devem realizar qualquer tipo de validação sobre os dados.
![Page 56: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/56.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Exercício 1
� O método main( ) da classe CadastroGeneros deve realizar o seguinte procedimento:
� Crie um vetor para armazenar até 1000 objetos da classe Genero.
� Permita que o usuário cadastre até 1000 gêneros.
�Grave os dados de cada gênero em um objeto da classe Genero.
�Grave todos os objetos criados no vetor supracitado.
� Ao final, exiba um relatório de todos os gêneros cadastrados.
� Não implemente nenhum tipo de validação de dados.
![Page 57: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/57.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Exercício 1
![Page 58: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/58.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Exercício 2
� Crie um novo aplicativo que permita cadastrar até 200 funcionários.
� Este aplicativo deve ser composto pelas classes Funcionarioe CadastroFuncionarios.
![Page 59: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/59.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Exercício 2
� Especificações da classe Funcionario.
� O construtor deve inicializar seu atributo nome.
� Os métodos de escrita devem disparar exceções do tipo IllegalArgumentException se um dado inválido for recebido.
� Regras para validação dos dados nos métodos de escrita:
�Matrícula: deve ser um número inteiro positivo.
�Nome: deve conter de 5 a 50 caracteres.
� Salário: deve ser um valor não inferior a R$ 465,00.
![Page 60: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/60.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Exercício 2
� O método main( ) da classe CadastroFuncionario deve realizar o seguinte procedimento:
� Crie um vetor para armazenar até 200 objetos da classe Funcionario.
� Permita que o usuário cadastre até 200 funcionários.
�Grave os dados de cada funcionário em um objeto.
�Grave todos os objetos criados no vetor supracitado.
� Se um dado inválido for informado, exiba uma mensagem de erro e solicite-o novamente.
� Ao final, exiba um relatório dos funcionários cadastrados.
![Page 61: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/61.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Exercício 2
![Page 62: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/62.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Exercício 3
� Crie um novo aplicativo que permita cadastrar até 500 fornecedores.
� Este aplicativo deve ser composto pelas classes Fornecedor e CadastroFornecedores.
![Page 63: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/63.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Exercício 3
� Especificações da classe Fornecedor.
� O construtor deve inicializar os atributos de tipo String.
� Os métodos de escrita devem disparar exceções do tipo Exception se um dado inválido for recebido.
� Regras para validação dos dados nos métodos de escrita:
� Código: deve ser um número inteiro positivo.
� Razão social: deve conter de 5 a 50 caracteres.
� Telefone: deve conter 10 dígitos numéricos.
� E-mail:
o Deve conter de 5 a 50 caracteres.
o Deve conter uma única arroba: @.
o Deve haver ao menos 2 caracteres antes da @.
o Deve haver ao menos 2 caracteres depois da @.
![Page 64: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/64.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Exercício 3
� O método main( ) da classe CadastroFornecedores deve realizar o seguinte procedimento:
� Crie um vetor para armazenar até 500 objetos da classe Fornecedor.
� Permita que o usuário cadastre até 500 fornecedores.
�Grave os dados de cada fornecedor em um objeto.
�Grave todos os objetos criados no vetor supracitado.
� Se um dado inválido for informado, exiba uma mensagem de erro e solicite-o novamente.
� Ao final, exiba um relatório dos fornecedores cadastrados.
![Page 65: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/65.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Exercício 3
![Page 66: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/66.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Exercício 4
� Crie um novo aplicativo que permita simular o controle de operações de entrada e saída de estoque de um único produto.
� Este aplicativo deve ser composto pelas classes Produto e OperadorEstoque.
![Page 67: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/67.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Exercício 4
� Especificações da classe Produto.
� O construtor deve inicializar o atributo descricao.
� Os métodos de escrita devem disparar exceções do tipo Exception se um dado inválido for recebido.
� Regras para validação dos dados nos métodos de escrita:
� Código: deve ser um número inteiro positivo.
� Razão social: deve conter de 5 a 50 caracteres.
� Método registrarEntrada( ):
� Deve somar a quantidade ao saldo já existente.
� Exceções:
o Quantidade menor ou igual a zero: “Quantidade inválida”.
� Método registrarSaida( ):
� Deve subtrair a quantidade do saldo existente.
� Exceções:
o Quantidade menor ou igual a zero: “Quantidade inválida”.
o Quantidade maior que o saldo: “Saldo insuficiente”.
![Page 68: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/68.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Exercício 4
� O método main( ) da classe OperadorEstoque deve realizar o seguinte procedimento:
� Crie uma instância da classe Produto.
� Solicite o código e a descrição do produto e grave-os no objeto.
� Se um dado informado for inválido, exiba uma mensagem de erro e solicite-o novamente.
� Inicie uma estrutura de repetição que só seja encerrada quando o usuário cancelar um dos diálogos de entrada.
� Solicite a operação desejada:
o E = Registrar entrada.
o S = Registrar saída.
� Solicite a quantidade.
� Atualize o saldo do produto através do método correspondente.
� Exiba o saldo atualizado do produto.
![Page 69: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/69.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Exercício 4
![Page 70: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/70.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Exercício 5
� Crie um novo aplicativo que permita cadastrar até 10 vendedores.
� Este aplicativo deve ser composto pelas classes Vendedor e CadastroVendedores.
![Page 71: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/71.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Exercício 5
� Especificações da classe Vendedor.
� O atributo nrInstancias deve ser declarado como um atributo estático e representa o número de instâncias da classe Vendedor que foram criadas.
� O construtor deve:
� Inicializar o atributo nome.
� Incrementar o atributo nrInstancias.
� Os métodos de escrita não devem validar os dados e tampouco lançar exceções.
![Page 72: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/72.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Exercício 5
� O método main( ) da classe CadastroVendedores deve realizar o seguinte procedimento:
� Crie um vetor para armazenar até 10 funcionários.
� Permita que o usuário cadastre até 10 funcionários.
�Grave os dados de cada funcionário em um objeto.
�Grave todos os objetos criados no vetor supracitado.
�Utilize um laço while para a simulação dos cadastros.
o Utilize o método getNrInstancias() na condição deste laço.
� Ao final, exiba um relatório dos funcionários cadastrados.
� Não implemente nenhum tipo de validação de dados.
![Page 73: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/73.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Exercício 5
![Page 74: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/74.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Exercício 6
� Crie um novo aplicativo que permita cadastrar até 100 motoristas.
� Este aplicativo deve ser composto pelas classes Motorista e CadastroMotoristas.
![Page 75: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/75.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Exercício 6
� Especificações da classe Motorista.
� Descrição dos atributos:
� cnh: o número da CNH (Carteira Nacional de Habilitação).
� nome: o nome completo do motorista.
� situação: N (Normal) ou S (Suspenso).
� SITUACAO_NORMAL: contém o caractere que deve ser armazenado no atributo situacao quando a situação motorista é normal.
� SITUACAO_SUSPENSO: contém o caractere que deve ser armazenado no atributo situacao quando a CNH do motorista foi suspensa.
� O construtor deve inicializar os atributos nome e situacao (N).
� Não deve haver método de leitura para nenhum atributo. A única forma de recuperar os dados contidos nos atributos é através da representação textual do objeto, ou seja, do método toString( ).
� Os métodos de escrita não devem validar os dados e tampouco lançar exceções.
![Page 76: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/76.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Exercício 6
� O método main( ) da classe CadastroMotorista deve realizar o seguinte procedimento:
� Crie um vetor para armazenar até 100 motoristas.
� Permita que o usuário cadastre até 100 motoristas.
�Grave os dados de cada motorista em um objeto.
�Grave todos os objetos criados no vetor supracitado.
� Ao final, exiba um relatório dos motoristas cadastrados.
� Não implemente nenhum tipo de validação de dados.
![Page 77: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/77.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Exercício 6
![Page 78: Capítulo 13 - Rui Rossiruirossi.pro.br/livros/li-rui-pcj-cap13.pdf · Mecanismo da POO Define níveis de visibilidade Tipos: Público Privado Protegido Pacote (padrão) Rui Rossi](https://reader037.fdocumentos.com/reader037/viewer/2022102921/5be5c5c509d3f28a428cac2b/html5/thumbnails/78.jpg)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Contato
Com o autor:
Rui Rossi dos Santos
E-mail: [email protected]
Web Site: http://www.ruirossi.pro.br
Com a editora:
Editora NovaTerra
Telefone: (21) 2218-5314
Web Site: http://www.editoranovaterra.com.br