Capítulo 13 Encapsulamento 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. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Introdução Classes: tipos de membros Atributos Construtores Métodos 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 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) Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Introdução Diretivas – qualificadores – modificadores de acesso Public Protected Private 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 Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Introdução Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Introdução 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 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. 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 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. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Bloqueio do Acesso Externo aos Atributos 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 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. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Métodos de Leitura e Escrita 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. 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. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Validações nos Métodos de Escrita 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 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 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. 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 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. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Uso de Unchecked Exceptions nos Métodos de Escrita 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 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 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. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Uso de Checked Exceptions nos Métodos de Escrita 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 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. 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 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. 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 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> 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. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Validação de Dados no Construtor 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 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> 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. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Relação Assimétrica entre Atributos e Métodos de L/E 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]){ } 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. 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. 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 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; 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> 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. 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>; 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> 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. 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) { } 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” 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. 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. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 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 Funcionario e CadastroFuncionarios. 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. 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. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 2 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. 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 @. 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. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 3 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. 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”. 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. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 4 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. 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. 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. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 5 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. 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. 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. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 6 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 Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra