// Declaração da classe Mensagem com apenas um método. Esta classe deve estar em um arquivo Mensagem.class. public class Mensagem { // Exibe uma mensagem. public void mostraTexto1() { System.out.println(“ O rato roeu a roupa do rei de Roma ”); } // fim do método mostraTexto1(). } // fim da classe Mensagem. // Declaração da classe de teste da classe Mensagem. public class TestaMensagem { public static void main( String args[] ) { // Cria um objeto Mensagem e o atribui a minhaMensagem. Mensagem minhaMensagem = new Mensagem(); // Chama método mostraTexto1(). minhaMensagem.mostraTexto1(); } // fim do método main. } // fim de classe TestaMensagem. Item (A) Teste o programa P1. Item (B) Insira um novo método mostraTexto2() que solicita ao usuário uma string e depois a imprime utilizando os comandos e a seqüência da Figura 1.3. Depois modifique o método main de TestaMensagem para chamar mostraTexto2(). Scanner input = new Scanner(System.in); // Cria Scanner para leitura de dados. System.out.println(“Entre com a sua mensagem”); String novaMensagem = input.nextLine(); // lê uma linha de texto. System.out.printf(“Mensagem personalizada: \n %s ! \n”, novaMensagem); Item (C) Construir um novo método mostraTexto3() que imprime na tela uma caixa de diálogo empregando a classe JOptionPane. // Colocar o comando a seguir no início da classe Mensagem, pois permite a importação da classe JOptionPane que permite o uso de caixas de diálogo. import javax.swing.JOptionPane; // importa a classe JOptionPane public void mostraTexto3() { // exibe uma caixa de diálogo. JOptionPane.showMessageDialog(null, “Mensagem \n em \n caixas ! ”); } // fim do método mostraTexto3(). Item (D) Fornecer um novo método mostraTexto4() que captura uma mensagem através de uma caixa de diálogo de entrada e depois a mostra em outra caixa de diálogo de saída. // Pede para o usuário inserir o nome. String name = JOptionPane.showInputDialog(“ Qual o seu nome ? ”); // Cria a mensagem a ser armazenada na variável texto. String texto = String.format(“Bem-vindo %s ao mundo do Java !”, name); // Exibe a mensagem para cumprimentar o usuário pelo nome. JOptionPane.showMessageDialog(null, texto); Exercício 2: O programa P1 pode ser modificado de forma que a classe Mensagem tenha um campo para armazenar as mensagens fornecidas pelo usuário. Para tanto, é necessário modificar a classe Mensagem com a declaração do campo texto dentro do escopo da classe e ainda declarar dois métodos getMensagem e setMensagem. O primeiro método retorna o conteúdo do campo texto e o segundo possibilita a modificação do campo texto. As modificações descritas são fornecidas pela Figura 2.1. Observe, porém que os demais métodos deve ser alterados para mostrarem na Tela o conteúdo do campo texto. // Declaração da classe Mensagem com apenas um método. // Esta classe deve estar em um arquivo Mensagem.class. public class Mensagem { // Declara um campo texto para a classe Mensagem. private String texto; // Método para configurar a mensagem contida no campo texto. public void setTexto( String mens) { texto = mens; } // fim do método setMensagem(). // Método para recuperar a mensagem contida no campo texto. public String getTexto() { return texto; } // fim do método getMensagem(). // Demais métodos devem ser alterados !!! } // fim da classe Mensagem. public class TestaMensagem { public static void main(String args[]) { // Cria Scanner para obter entrada a partir da janela de comando. Scanner input = new Scanner( System.in ); // Cria um objeto Mensagem e o atribui a minhaMensagem. Mensagem minhaMensagem = new Mensagem(); // Chama método que exibe valor inicial de texto e imprime na tela. 6 System.out.printf(“ Valor inicial de texto: %s \n ”, minhaMensagem.getTexto()); // Solicita a inserção de uma mensagem a ser armazenada em texto. System.out.println(“Entre com o texto: ”); String mensa = input.nextLine(); // lê uma linha com caracteres. minhaMensagem.setTexto(mensa); // Atribui conteúdo de mensa para texto. System.out.printf(“ Valor final de texto: %s \n ”, minhaMensagem.getTexto()); } // fim do método main. } // fim de classe TestaMensagem. Item (B): Em função das modificações detalhadas no Item (A) é necessário alterar os métodos mostraTexto1(), mostraTexto2(), mostraTexto3() e mostraTexto4() tal que sempre o conteúdo do campo texto é que seja exibido ou alterado. Por exemplo, para o método mostraTexto1() será necessário realizar as alterações. Use sempre os métodos getTexto() e setTexto(). // Exibe uma mensagem. public void mostraTexto1() { System.out.printf(“ %s \n ”, getTexto()); } // fim do método mostraTexto1(). Exercício 3: O programa P2 pode ainda incluir métodos que inicializam o campo texto automaticamente quando da criação de um objeto do tipo Mensagem. Tais métodos são denominados de construtores e possuem o mesmo nome da classe (no caso Mensagem). Para incluir construtores no programa P2 utilize os comandos da Figura 3.1. // Construtor vazio: insere uma mensagem padrão no campo texto. public Mensagem() { texto = “ ”; } // fim do método Mensagem(). // Construtor com argumento: inicializa campo texto com String fornecida como // argumento. public Mensagem(String mensa) { texto = mensa; // inicializa campo texto. // poderia ter usado também: setTexto(mensa); } // fim do método mostraTexto1(). Deseja-se verificar as alterações que ocorrem no programa P2 empregando os comandos da Figura 3.2 a serem inseridos no método main da classe TestaMensagem. // Declaração da classe de teste da classe Mensagem. public class TestaMensagem { public static void main(String args[]) { // Cria Scanner para obter entrada a partir da janela de comando. Scanner input = new Scanner( System.in ); // Cria um objeto Mensagem e o atribui a minhaMensagem. Mensagem minhaMensagem = new Mensagem(“Teste Construtor”); // Chama método que exibe valor inicial de texto e imprime na tela. System.out.printf(“ Valor inicial de texto: %s \n ”, minhaMensagem.getTexto()); // Solicita a inserção de uma mensagem a ser armazenada em texto. System.out.println(“Entre com o texto: ”); String mensa = input.nextLine(); // lê uma linha com caracteres. minhaMensagem.setTexto(mensa); // Atribui conteúdo de mensa para texto. System.out.printf(“ Valor final de texto: %s \n ”, minhaMensagem.getTexto()); } // fim do método main. } // fim de classe TestaMensagem. Exercício 4: Criar uma classe Conta que representa a conta corrente de um dado cliente de um Banco. A classe Conta deve possuir os seguintes campos: • nomeCC – Nome do correntista (tipo String). • numCC – Número da conta corrente sem traço (tipo int). • senhaCC – Número correspondente a senha do cliente (tipo int). Item (A): Para a classe Conta Um construtor com 3 parâmetros de entrada onde as informações nomeCC, numCC e senhaCC (public void CONTA(String n1, int n2, int n3)) são inicializadas. Item (B): Criar também um método public void mostraConta() que imprime os 3 campos para um objeto Conta C1. Item (C): Para ilustrar o funcionamento destes dois métodos, criar uma classe TestaConta com função main() que cria um objeto Conta, com informações de um dado correntista e mostra seu conteúdo. 8 Item (D): Criar métodos set e get de modo a modificar e obter cada um dos campos de um objeto da classe Conta. Modificar o public void mostraConta() para que empregue os métodos get de cada um dos campos. Criar, ainda, um novo método que altera os valores dos campos através dos métodos set.