Várias respostas sobre JAVA
30 pág.

Várias respostas sobre JAVA


DisciplinaAlgoritmos e Programação 2141 materiais3.784 seguidores
Pré-visualização8 páginas
(Unified Modeling Language - 
mais informações em www.omg.org). É importante notar que a UML não é um método, ou 
seja, ela não mostra os passos a serem seguidos para construir uma aplicação. Em vez 
disso, ela mostra como se pode documentar as diversas partes que formam um sistema 
completo. 
Como exemplo, vamos construir um Sistema de Biblioteca com cadastramento e consulta. 
O Diagrama de Atividades mostra as atividades que estão envolvidas no problema a 
resolver. Assim, na construção de um sistema para uma biblioteca, devemos pensar nas 
atividades que estão envolvidas numa biblioteca real. Os exemplos a seguir mostram 
alguns casos para o nosso Sistema de Biblioteca. 
Levantamento de requisitos 
Entendido o problema, precisamos levantar todos os requisitos para a construção deste 
sistema, tais como: 
O que se tem em ma Biblioteca? (Livros, Jornais, Revistas, Usuários, Funcionários, etc.) 
Têm-se cadastros de que tipo? (Livros, Jornais, Revistas etc.) 
Têm-se consultas de que tipo? (Consulta pela descrição do item da biblioteca etc.) 
Têm-se quantos computadores disponíveis? 
Existe uma rede de computadores para interligar o sistema? 
Quantos usuários em média acessarão o sistema? 
Quantos itens existem para cadastramento? 
Análise dos requisitos 
Nesta fase, fazemos uma análise dos principais itens levantados no processo anterior e 
chegamos a um escopo mais determinado do que é o sistema. 
Estudo de caso do sistema 
Nesta etapa, realizam-se diversos estudos sobre o desenvolvimento do sistema. 
Utilizando o diagrama de Use Cases do UML (atores e os processos do sistema). 
Atenção: nesta fase devem ser gerados os demais estudos de atores e processos que 
envolvem o sistema. 
Estudo da Hierarquia de Classes 
Nesta etapa, iniciamos um estudo detalhado de quais classes, atributos e métodos devem 
existir no sistema para que ele funcione corretamente. Definimos, também, a hierarquia 
de classes que será implementada para oferecer as funcionalidades que se deseja para o 
nosso software. 
Hierarquia de classes 
Deve haver uma série de discussões em grupo, para definir a melhor estrutura hierárquica 
de classes no sistema, seus atributos, seus métodos, etc. 
Análise da arquitetura 
Definimos, nesta fase, a plataforma de implantação do sistema final. Perguntas que 
devem ser feitas nesta fase são: 
 Quantos computadores devem executar o sistema? 
 O sistema necessita de um hardware específico? 
 A aplicação necessita de alto desempenho devendo, assim, ser particionada? 
 Quais são os requisitos mínimos de hardware? 
Aqui cabem todas as questões relacionadas ao ambiente em que a aplicação irá executar. 
A implementação 
Com todo o sistema já definido, finalmente chega a hora de implementar o sistema. 
Apresentamos um exemplo do nosso sistema de biblioteca, com a inserção e consulta de 
livros funcionando. Deixo ao leitor a tarefa de implementar o restante das funções e 
aprendar mais sobre o processo de desenvolvimento usando Java! Antes de compilar, 
não se esqueça de configurar as variáveis PATH e CLASSPATH. Compile o programa 
com o comando javac Biblioteca.java, e execute com java Biblioteca. O código fonte pode 
ser baixado no site da Revista do Linux em: www.RevistaDoLinux.com.br/ed/domes. 
Tratamento de Exceções 
Uma exceção é um evento que ocorre durante a execução de uma aplicação e 
que interrompe o fluxo normal das instruções. Muitos tipos de erros podem 
causar exceções, tais como erros de hardware (um disco rígido com problemas) 
ou software (uso de um vetor sem posições adicionais, por exemplo). Em 
ambos os casos, a plataforma Java gera uma exceção que pode ser tratada em 
tempo de execução pelo software. 
Muitas classes da API Java apresentam um tratamento especial que disponibiliza as 
exceções para que sejam tratadas pelo desenvolvedor. Para saber mais sobre exceções, 
a forma mais simples é a observação, dentro de um help ou da documentação da API 
Java (www.javasoft.com/docs), se cada método de uma classe disponibiliza uma ou mais 
exceções para serem tratadas. Um exemplo disso é a classe System do pacote java.lang. 
Essa classe tem um atributo in (do tipo InputStream). Quando se executa um 
System.in.read*(), essa chamada disponibiliza uma exceção de entrada/saída conhecida 
como IOException, que pode ser tratada. 
Manipulando Exceções 
Excecao1.java 
public class Excecao1 extends Object 
{ 
 public static void main(String args[]) 
 { 
 byte dado[] = new byte[10]; 
 System.out.println("Digite um número"); 
 System.in.read(dado); 
 } 
} 
Ao tentar compilar o exemplo acima será gerado o erro de compilação abaixo: 
C:\jdk1.2.1\samples\excecao>javac Excecao1.java 
Excecao1.java:7: Exception java.io.IOException must be caught, or it must be 
declared in the throws clause of this method. 
 
 System.in.read(dado); 
 ^ 
1 error 
O erro de compilação acima demonstra haver uma exceção que precisa ser 
obrigatoriamente tratada. Trata-se, neste caso, de uma exceção de entrada e saída 
(IOException), como se pode observar pela linha gerada: ` 
Excecao1.java:7: Exception java.io.IOException must be caught, or it must be 
declared in the throws clause of this method. 
Para saber qual linha de código gerou o erro de compilação, basta analisar a saída 
gerada pela compilação. Essa saída apresenta o nome do arquivo que contém o erro, 
seguido de dois pontos e do número da linha de código que apresenta erro. 
Após descobrir qual linha apresenta erro, deve-se analisar qual a natureza do erro. Todo 
erro que diz "... must be caught, or it must be declared in the throws clause of this method" 
está se referindo a uma exceção que não foi manipulada corretamente. Na linha 7 do 
exemplo Excecao1.java há o código abaixo: 
System.in.read(dado); 
Após saber qual o código, a melhor forma de agir é recorrer à documentação do objeto 
utilizado. Ao encontrar a documentação, pode-se checar o método que está sendo 
chamado. A documentação dos pacotes disponíveis no J2SDK pode ser obtida no site 
JavaSoft (www.javasoft.com/docs). No caso acima demonstrado, ao acessar a 
documentação deve-se inicialmente procurar pela classe System, que se encontra 
disponível no pacote java.lang. Ao observar o atributo in (System.in), percebe-se que é 
um objeto do tipo InputStream. Nesse caso, deve-se acessar a documentação da classe 
InputStream. A lista de exceções geradas pelo método em caso de erros se encontra no 
método read dessa classe. A partir desse momento, basta tratar as exceções que o 
método gera. Neste exemplo, a exceção gerada é do tipo IOException. 
Como tratar esses erros? 
Para tratar as exceções, a linguagem Java disponibiliza a estrutura de controle try-catch-
finally, que é utilizada para o tratamento de exceções e fluxo de execução de sua 
aplicação. O try-catch-finally permite tratar determinado tipo de exceção gerada por um 
método qualquer. O exemplo a seguir mostra o tratamento de uma exceção de entrada e 
saída (IOException). Utilizaremos apenas o try-catch, sem o finally: 
Excecao1.java 
public class Excecao1 extends Object 
{ 
 public static void main(String args[]) 
 { 
 byte dado[] = new byte[10]; 
 System.out.println("Digite um número"); 
 try 
 { 
 // tenta executar o código contido no try, 
 // caso haja exceção chama o catch responsável 
 // pela exceção 
 System.in.read(dado); 
 } 
 catch (java.io.IOException erro_gerado) 
 { 
 // pode-se tratar a exceção aqui 
 } 
 } 
} 
No exemplo acima não são gerados erros de compilação, pois a classe System contém 
tratamento da exceção gerada pelo método read do indentificador in, que é do tipo 
InputStream. Tratar exceções é uma técnica