Вы находитесь на странице: 1из 8

...............................................................................................................................

TECNLOGO EM ANLISE E DES. DE SISTEMAS

PORTFLIO 1
PROGRAMAO ORIENTADA A OBJETOS

............................................................................................................................... Guarulhos 2013

PORTFLIO 1
PROGRAMAO ORIENTADA A OBJETOS

Trabalho apresentado ao Curso de Tecnologia em Anlise e Desenvolvimento de Sistemas da Faculdade ENIAC para a disciplina de Programao Orientada a Objetos. Prof. Lcio Luzetti Criado.

Guarulhos 2013

Respostas .............................................................................................................
Questo 01 a. HelloJava1 - aplicativo em Java com o objetivo de mostrar, em uma janela, a frase "Hello, Java!". O cdigo inicialmente deve ser escrito em um editor de textos comum, e salvo com o nome de "HelloJava1.java". Aps isso, deve-se compilar (transformar cdigo fonte em cdigo binrio), com o comando: javac HelloJava1.java Este comando gerar um arquivo bytecode, que por sua vez dever ser lido pelo interpretador Java com o comando: java HelloJava1 Ao executar o bytecode, ser apresentada uma janela (nas dimenses 300x300), com a frase "Hello, Java!" no seu centro.

b. Classes - o corpo principal da aplicao. Ela contm os mtodos que sero utilizados durante a execuo da aplicao, bem como as variveis e objetos.

c. O mtodo main() - o mtodo principal que o interpretador busca durante a execuo. Tudo o que estiver contido neste mtodo ser executado primeiramente, antes do restante do cdigo.

d. Classes e objetos - uma classe um determinado trecho da aplicao que pode ser modificado e/ou reaproveitado em vrias instncias, criando objetos diferentes. Um exemplo dado no material de apoio a classe button(), que pode assumir diferentes formas, cores, tamanhos, rtulos e aes (objetos); sempre aproveitando a base fornecida pela classe. e. Tipos de variveis e classes - h dois tipos de variveis: as de classe e de instncia.

Uma varivel de instncia recebe um objeto atribudo a ela na declarao. Como no exemplo citado: Public void paintComponent(java.awt.Graphics g){...} A varivel g recebe um objeto (do tipo Graphics) no instante em que este mtodo chamado.

J uma varivel de classe, simplesmente aponta para um objeto especfico, ou seja, no armazena nenhum valor, apenas serve para indexar/referenciar a varivel um objeto.

f. Herana - todas as classes em Java so dispostas em hierarquia, onde uma classe sempre descende de outra (em uma relao de pai - superclasse e filho - subclasse). A nica classe que no contm uma classe pai a Object, da qual se originam todas as demais.

Assim, uma classe filho pode herdar caractersticas (variveis e mtodos) da classe pai diretamente, no sendo necessrio fazer a declarao novamente.

g. A classe JComponent - esta classe pertence ao pacote swing, que constitui em um conjunto de classes que fornecem uma interface de interao com o usurio (botes, caixas de dilogo, janelas, etc). A classe JComponent, neste exemplo postado, a responsvel pode imprimir a frase "Hello, Java!" na janela grfica, que foi criada, por sua vez, por outro componente do pacote swing: a classe JFrame.

Questo 02 Em anexo segue o arquivo fonte extenso.java. Obs.: a codificao de

caracteres do arquivo a ISO-8859-1 (padro em sistemas Windows). Abaixo, o contedo do mesmo (na ntegra):
/* Nome: extenso * Autor: Leandro Nkz <leandronkz@gmail.com> * Funo: Retorna o nmero digitado por extenso * Licena: Distribudo sob licena GPLv3 :P */ //Importando JOptionPane import javax.swing.JOptionPane; //Classe principal public class extenso { //Mtodo main, principal public static void main(String[] args) { //Declarando variveis String dados, texto=""; int unidade=0, dezena=0, centena=0, milhar=0, num; //Entrada de dados dados = JOptionPane.showInputDialog("Digite um nmero:"); //Bloco try (se der erro, ele tratado no bloco catch - linha 156) try { //Converte os dados entrados em Int num = Integer.parseInt(dados); //Se nmero for negativo ou maior que 1000, encerrar programa if (num>1000||num<0) { JOptionPane.showMessageDialog(null, "Nmero invlido.\nDigite um nmero entre 0 e 1000.", "Erro", JOptionPane.ERROR_MESSAGE); //Encerrar o programa com status 1 (Erro) System.exit(1); } //Se o usurio digitar mais de 4 dgitos, emitir mensagem de erro e encerrar com status 1 if (dados.length()>4){ JOptionPane.showMessageDialog(null, "Formato invlido.\nDigite apenas 4 dgitos.", "Erro", JOptionPane.ERROR_MESSAGE); System.exit(1); } //Se o nmero possuir 4 dgitos separar em milhar, centena, dezena e unidade if (dados.length()==4) { milhar = Integer.parseInt(dados.substring(0,1)); centena = Integer.parseInt(dados.substring(1,2)); dezena = Integer.parseInt(dados.substring(2,3)); unidade = Integer.parseInt(dados.substring(3,4)); } //Se o nmero possuir 3 dgitos, separar em centena, dezena e unidade if (dados.length()==3) { centena = Integer.parseInt(dados.substring(0,1)); dezena = Integer.parseInt(dados.substring(1,2)); unidade = Integer.parseInt(dados.substring(2,3)); }

//Se o nmero possuir 2 dgitos, separar em dezena e unidade if (dados.length()==2) { dezena = Integer.parseInt(dados.substring(0,1)); unidade = Integer.parseInt(dados.substring(1,2)); } //Se o nmero possuir 1 dgito, separar o nico caractere if (dados.length()==1) { unidade = Integer.parseInt(dados.substring(0,1)); } //Se o milhar for igual a 1, imprime Mil e encerra, seno, continua if (milhar==1) { texto += "Mil"; } else { //Se milhar, centena e dezena forem 0, imprima Zero e encerre if (milhar==0 && centena==0 && dezena==0 && unidade==0){ texto += "Zero"; } //Se o nmero digitado for 100, imprime e encerra, seno, continua if (milhar==0 && centena==1 && dezena==0 && unidade==0){ texto += "Cem"; } else { //Alternativas para centena switch(centena){ case 1: {texto += "Cento e "; break;} case 2: {texto += "Duzentos"; break;} case 3: {texto += "Trezentos"; break;} case 4: {texto += "Quatrocentos"; break;} case 5: {texto += "Quinhentos"; break;} case 6: {texto += "Seiscentos"; break;} case 7: {texto += "Setecentos"; break;} case 8: {texto += "Oitocentos"; break;} case 9: {texto += "Novecentos"; break;} } } /* Se a centena for maior que 1 e a dezena diferente de 0, * ou se a centena for maior que 1 e a unidade for diferente de zero * acrescentar "e" ao texto. Exemplo: 309 = Trezentos e Nove / 341 = Trezentos e Quarenta e Um */ if (centena >1 && dezena != 0 || centena>1 && unidade != 0){ texto += " e "; } //Alternativas para dezena switch(dezena){ case 9: {texto += "Noventa"; break;} case 8: {texto += "Oitenta"; break;} case 7: {texto += "Setenta"; break;} case 6: {texto += "Sessenta"; break;} case 5: {texto += "Cinquenta"; break;} case 4: {texto += "Quarenta"; break;} case 3: {texto += "Trinta"; break;} case 2: {texto += "Vinte"; break;} } }

/* Se dezena for maior que 1 e unidade diferente de 0 * acrescentar "e". Exemplo de resultado: 34 = Trinta e Quatro */ if (dezena>1 && unidade!=0){ texto += " e "; } //Alternativas especiais para a dezena 10 if (dezena == 1) { switch (dezena){ case 1: { switch (unidade){ case 0: {texto += "Dez"; break;} case 1: {texto += "Onze"; break;} case 2: {texto += "Doze"; break;} case 3: {texto += "Treze"; break;} case 4: {texto += "Quatorze"; break;} case 5: {texto += "Quinze"; break;} case 6: {texto += "Dezesseis"; break;} case 7: {texto += "Dezessete"; break;} case 8: {texto += "Dezoito"; break;} case 9: {texto += "Dezenove"; break;} } } } } else { //Alternativas para unidade switch(unidade){ case 1: {texto += "Um"; break;} case 2: {texto += "Dois"; break;} case 3: {texto += "Trs"; break;} case 4: {texto += "Quatro"; break;} case 5: {texto += "Cinco"; break;} case 6: {texto += "Seis"; break;} case 7: {texto += "Sete"; break;} case 8: {texto += "Oito"; break;} case 9: {texto += "Nove"; break;} } } //Imprimir resultado final JOptionPane.showMessageDialog(null, "Nmero digitado: " + num + "\nNmero por extenso: " + texto); //Encerrar programa com status 0 (OK) System.exit(0); //Se o try falhar e acusar "NumberFormatException", imprima mensagem e encerre } catch (NumberFormatException e){ JOptionPane.showMessageDialog(null,"Digite um nmero vlido.", "Erro", JOptionPane.ERROR_MESSAGE); //Encerrar o programa com status 1 (Erro) System.exit(1); } } }

Concluso/Parecer O aplicativo consegue realizar a atividade proposta com sucesso. Em todos

os testes realizados ao final do desenvolvimento deste portflio, o aplicativo retornou as respostas corretamente.

Bibliografia NIEMEYER, P.; KNUDSEN, J. Aprendendo Java. O'REILLY campus, 2000.

Вам также может понравиться