138
 PROF. HILÁRIO SEIBEL JÚNIOR LINGUAGEM DE PROGRAMAÇÃO I SERRA 2011

Tads 4p Linprogi Fasciculo Web

Embed Size (px)

Citation preview

PROF. HILRIO SEIBEL JNIOR

LINGUAGEM DE PROGRAMAO I

SERRA 2011

Governo Federal Ministro de Educao Fernando Haddad IFES - Instituto Federal do Esprito Sando Reitor Denio Rebello Arantes Pr-Reitora de Ensino Cristiane Tenan Schlittler dos Santos Diretora do CEAD Centro de Educao a Distncia Yvina Pavan Baldo Coordenadores da UAB Universidade Aberta do Brasil Elton Siqueira Moura Danielli Veiga Carneiro Sondermann

Curso de Tecnologia em Anlise e Desenvolvimento de Sistemas Coordenao de Curso Andromeda Gorete Correa de Menezes Designer Instrucional Aline Freitas da Silva Professor Especialista/Autor Hilrio Seibel Jnior

Catalogao da fonte: Rogria Gomes Belchior - CRB 12/417 S45l Seibel Jnior, Hilrio Linguagem de programao I./ Hilrio Seibel Jnior . - Vitria: IFES, 2009 137p. : il 1.Linguagem de programao I (Computadores). 2 Java (Linguagem de programao de computador) I. Instituto Federal do Esprito Santo. II. Ttulo CDD 005.13DIREITOS RESERVADOS IFES - Instituto Federal do Esprito Santo Avenida Rio Branco, n 50 Santa Lcia - CEP. 29056-255 Vitria ES - Telefone: 3227-5564 Crditos de autoria da editorao Capa: Juliana Cristina da Silva Projeto grfico: Juliana Cristina e Nelson Torres Iconografia: Nelson Torres Editorao eletrnica: Duo Translations Reviso de texto: Esther Ortlibe Faria de Almeida COPYRIGHT proibida a reproduo, mesmo que parcial, por qualquer meio, sem autorizao escrita dos autores e do detentor dos direitos autorais.

Ol, Aluno(a)!

um prazer t-lo(a) conosco. O Ifes oferece a voc, em parceria com as Prefeituras e com o Governo Federal, o Curso Superior de Tecnologia em Anlise e Desenvolvimento de Sistemas, na modalidade a distncia. Apesar de este curso ser ofertado a distncia, esperamos que haja proximidade entre ns, pois, hoje, graas aos recursos da tecnologia da informao (e-mail, chat, videoconferncia, etc.), podemos manter uma comunicao efetiva. importante que voc conhea toda a equipe envolvida neste curso: coordenadores, professores especialistas, tutores a distncia e tutores presenciais, porque, quando precisar de algum tipo de ajuda, saber a quem recorrer. Na EaD - Educao a Distncia, voc o grande responsvel pelo sucesso a aprendizagem. Por isso, necessrio que voc se organize para os estudos e para a realizao de todas as atividades, nos prazos estabelecidos, conforme orientao dos Professores Especialistas e Tutores. Fique atento s orientaes de estudo que se encontram no Manual do Aluno. A EaD, pela sua caracterstica de amplitude e pelo uso de tecnologias modernas, representa uma nova forma de aprender, respeitando, sempre, o seu tempo. Desejamos-lhe sucesso e dedicao! Equipe do Ifes

ICONOGRAFIAVeja, abaixo, alguns smbolos utilizados neste material para gui-lo em seus estudos

Fala do Professor

Conceitos importantes. Fique atento!

Atividades que devem ser elaboradas por voc, aps a leitura dos textos.

Indicao de leituras complemtares, referentes ao contedo estudado.

Destaque de algo importante, referente ao contedo apresentado. Ateno!

Reflexo/questionamento sobre algo importante referente ao contedo apresentado.

Espao reservado para as anotaes que voc julgar necessrias.

LINGUAGEM DE PROGRAMAO ICap. 1 - PRIMEIROS PASSOS EM JAVA 91.1 A linguagem Java 9 1.2 Criao de programas em Java 10 1.3 Primeiro exemplo de programa em Java 12 1.4 Incluindo componentes nos painis 17 1.5 Adicionando funcionalidades ao programa 19

Cap. 2 - INTRODUO LINGUAGEM JAVA 252.1 Programa simples em Java 25 2.2 Tipos de dados e definio de variveis 28 2.3 Strings 32 2.4 Arrays 34 2.5 Operadores 35 2.6 Funes matemticas 36 2.7 Controle de fluxo 37 2.8 Escopo das variveis 40 2.9 Garbage collection 41

Cap. 3 - ORIENTAO A OBJETOS: CLASSES, OBJETOS E MTODOS 433.1 Introduo orientao a objetos 43 3.2 Classe e objeto 44 3.3 Classes e objetos em Java 45 3.4 Mtodos 47

Cap. 4 - ORIENTAO A OBJETOS: MTODOS E ENCAPSULAMENTO 554.1 Construtores 55 4.2 Encapsulamento 59 4.3 Retomando o projeto inicial 63

Cap. 5 - POLIMORFISMO (HERANA, SOBRECARGA E REESCRITA) 715.1 Herana 71 5.2 Sobrecarga de mtodos 75

5.3 Reescrita de mtodos 76 5.4 Pacotes 77 5.5 Retomando o projeto inicial 79

Cap. 6 - COMPOSIO, CLASSES ABSTRATAS, INTERFACES E PACOTES 856.1 Composio 85 6.2 Classes e mtodos abstratos 87 6.3 Classes, mtodos e atributos finais 90 6.4 Interfaces 91

Cap. 7 - CONTROLE DE ERROS (EXCEES) 957.1 Tratamento de excees 95 7.2 Try-catch 95 7.3 Try-finally 96 7.4 Tipos de erros 98 7.5 Gerando uma exceo 99 7.6 Criando suas prprias excees 101 7.7 Retomando o projeto inicial 103

Cap. 8 - ENTRADA E SADA DE DADOS 1098.1 Passagem de parmetros para o programa 109 8.2 Entrada padro 111 8.3 Manipulao de arquivos 115

Cap. 9 - PERSISTNCIA DE DADOS 1199.1 Criando e populando um banco de dados no Netbeans 119 9.2 Como conectar e inserir dados no BD 122 9.3 Como recuperar dados do BD 124

Cap. 10 - INTERFACES GRFICAS 12710.1 Componentes da interface 127 10.2 Caixas de dilogos 132

APRESENTAO

Ol! Meu nome Hilrio Seibel Jnior e sou professor do IFES desde 2007, onde atuo na rea de Programao. Eu me formei em Cincia da Computao na UFES em 2004. Em 2007, terminei meu Mestrado em Informtica, tambm pela UFES. Tenho interesse pelas reas de programao, algoritmos, processamento paralelo, lgica, otimizao, recuperao de informao, anlise de algoritmos, computao grfica, jogos, software livre e telessade. Produzi este material como instrumento bsico para o estudo da disciplina de Linguagem de Programao. Nesta disciplina, iremos aprender Programao Orientada a Objetos e os exemplos sero apresentados na linguagem JAVA. Para fixar o contedo apresentado neste material, importante que voc realize as atividades propostas em cada captulo. Alm disso, sugerimos outros materiais que podem ajudar na compreenso de cada contedo aprendido. Toda esta bibliografia complementar apresentada aqui est disponvel online.

Sucesso! Bons estudos!

PRIMEIROS PASSOS EM JAVA

Prezado aluno, nesta disciplina, iremos aprender os conceitos de Programao Orientada a Objetos. Para comear, criaremos a interface grfica de um programa bem simples na linguagem Java. Em seguida, mostraremos alguns conceitos bsicos desta linguagem de programao, que ser utilizada em toda esta disciplina.

1.1 A linguagem JavaA linguagem Java foi concebida originalmente para a utilizao em pequenos dispositivos eletrnicos inteligentes. Entretanto, com as dificuldades de financiamento desse setor na poca e, principalmente, devido popularizao da Internet a partir de 1993, novas oportunidades apareceram e a Sun entrou de cabea nessa rea. A partir de 1995, a Sun anunciou o Java no apenas como mais uma linguagem de programao, mas como uma nova plataforma de desenvolvimento. Desde o ano de 1996 at hoje, a linguagem Java no para de crescer, produzindo solues adequadas desde as pequenas aplicaes at aplicativos corporativos, controles de servidores WWW etc. A tecnologia Java composta por uma gama de produtos, baseados no poder da rede e na ideia de que um software deveria ser capaz de rodar em diferentes mquinas, sistemas e dispositivos. Por diferentes dispositivos, entendemos: computadores, servidores, notebooks, handhelds, PDAs (Palm), celulares, TV, geladeiras e tudo mais o que for possvel. Os programas feitos em Java rodam em diferentes ambientes graas a um componente da plataforma chamado JVM (Java Virtual Machine) que um tipo de tradutor de cdigo Java para instrues especficas de cada sistema e dispositivo.

10

Captulo 1

Java uma linguagem que preza pela portabilidade. A utilizao do Java em multiplataforma um aspecto muito importante, porque os programadores no precisam se preocupar em saber em qual arquitetura o programa ser executado, uma vez que um mesmo programa pode ser usado em um PC, MAC ou em um computador de grande porte.

Java tambm pode atuar em conjunto com outras linguagens. As aplicaes podem ser embutidas at mesmo em documentos HTML, por exemplo, podendo ser transmitidas e utilizadas na Internet. A linguagem possui uma semelhana com a linguagem C++, tanto no que diz respeito sintaxe dos comandos quanto na caracterstica de ser orientada a objetos. Mais adiante, mostraremos outras caractersticas da Java. 1.2 Criao de programas em Java Assim como em qualquer outra linguagem, Java precisa de um processo de compilao por meio do qual ser analisada a existncia de erros de sintaxe. O compilador responsvel pela traduo do programa escrito em Java para uma linguagem intermediria chamada Java bytecodes um cdigo independente de plataforma que interpretado por um interpretador Java. Para que um programa em Java seja executado, portanto, necessrio possuir uma outra ferramenta chamada interpretador, que estar emulando a JVM (Mquina Virtual do Java) em qualquer computador e sistema operacional que esteja usando (Figura 1 -).

Cdigo - Fonte MeuPrograma.java Ajustar Cdigo-Fonte Sim Erros No Interpretador Bytecodes Execuo do Programa MeuPrograma.class Cdigo - Fonte

Figura 1 - Abstrao da Execuo de um programa em Java. Tecnologia em Anlise e Desenvolvimento de Sistemas

Primeiros passos em Java

11

Para instalar o Kit de Desenvolvimento da Sun, necessrio seguir os seguintes passos: 1. realizar o download do kit de desenvolvimento Java 6 SDK (Standard Edition J2SE), popularmente conhecido como JDK (Java Development Kit). Para isso, acesse o site http://java.sun. com e escolha a verso de acordo com o sistema operacional que ser utilizado; 2. aps instalar a ferramenta, necessrio criar uma varivel de ambiente chamada JAVA_HOME (que deve guardar o caminho do diretrio onde o Java foi instalado) e adicion-la ao PATH do seu S.O. No Windows, a sintaxe a seguinte (para a verso 1.5.0 do JDK, por exemplo):

Caso voc no consiga realizar esta etapa, procure o Guia de Instalao que veio junto com o Kit de Desenvolvimento que voc instalou, pois esta etapa pode depender do seu Sistema Operacional, ou ento pea ajuda a seu tutor.

3. Para testar a instalao, entre no prompt do DOS (Menu Iniciar > Programas > Acessrios > Prompt de Comando), digite javac e pressione a tecla Enter. Se aparecer uma tela contendo informaes de help, significa que a instalao foi realizada com sucesso. Caso contrrio, aparecer uma mensagem informando que o programa ainda no reconhecido pelo sistema. Existem diversos IDEs (do ingls Integrated Development Environment, que significa Ambiente Integrado de Desenvolvimento) com ferramentas de apoio ao desenvolvimento de softwares em Java com o objetivo de agilizar este processo. Neste disciplina, utilizaremos o NetBeans IDE. Para baix-lo, acesse o site http://www.netbeans.org/index_pt_BR.html e baixe a verso mais recente (a verso utilizada neste material a 6.5). Na pgina de downloads, voc tambm pode baixar diretamente o JDK com o NetBeans IDELinguagem de Programao I

12

Captulo 1

Java SE j embutido. Neste caso, no ser necessrio executar os passos de instalao e configurao do Java descritos acima. Antes de realizar o download, no se esquea de confirmar que o programa ser baixado em portugus.

1.3 Primeiro exemplo de programa em JavaPara comear nossos estudos, criaremos um programa em Java que calcula a mdia final de um aluno. No programa, a mdia do aluno ser composta pela soma das notas das duas provas presencias (cada uma vale 30) e da nota dos exerccios (40 pontos). Caso o aluno faa prova final, 40% do valor da mdia final sero compostos pela mdia parcial calculada anteriormente, e os 60% restantes sero compostos pela nota da prova final. O primeiro passo abrirmos o NetBeans e criarmos um novo projeto. Para isso, realize os passos a seguir: 1. clique em Arquivo > Novo Projeto; 2. dentre as opes Categorias da janela aberta, escolha Java. Dentro de Projetos, escolha Aplicativo Java. Clique em Prximo; 3. escolha um nome para o projeto (por exemplo, MediaFinal) e certifique-se de que apenas a opo Definir como projeto principal esteja selecionada. Clique em Finalizar. Aps criarmos o projeto, ele passa a ser exibido na aba Projetos, que fica no canto esquerdo do NetBeans. Para facilitar seu aprendizado, comearemos o projeto desenvolvendo a interface grfica de nosso programa. Para isso, precisamos criar um quadro (ou frame), que o espao onde os componentes de nossa interface sero exibidos. Este quadro pode ser criado da seguinte forma: 1. na aba de Projeto, clique com o boto direito do mouse no nome de nosso projeto; 2. escolha as opes Novo > Formulrio JFrame; 3. escolha um nome para o frame e outro para o pacote em que ele estar inserido (por exemplo, Interface para o nome do frame e pacoteInterface para o nome do pacote). Mais adiante, explicaremos detalhadamente para que servem os pacotes em Java. Clique em Finalizar.Tecnologia em Anlise e Desenvolvimento de Sistemas

Primeiros passos em Java

13

A Figura 2 - mostra um trecho da tela mostrada aps a realizao dos passos acima:

Figura 2 - Criando um Frame para a interface do programa.

O quadro cinza esquerda da Figura 2 - o frame onde os componentes da interface iro aparecer. Na aba Paleta, no canto direito da figura, esto os componentes que iremos inserir. Para comear, criaremos um Painel onde o usurio ir digitar o nome e a matrcula de um aluno. Para isso, clique em Painel na opo Contineres Swing da aba Paleta. Arraste o ponteiro do mouse para a rea do frame e voc ver uma tela como a mostrada na Figura 3 -.

Figura 3 - Inserindo um Painel na interface do programa. Linguagem de Programao I

14

Captulo 1

A rea quadrada com uma borda laranja vista na figura indica o local onde o painel ser inserido no frame. A linha pontilhada mostra uma margem dentro do frame, til para alinharmos os componentes. Devemos clicar com o mouse no local indicado para definir a rea onde ser inserido o painel. Em seguida, iremos redimensionar o painel, para que caibam os componentes que criaremos mais adiante. A Figura 4 - mostra o redimensionamento do painel.

Figura 4 - Redimensionando um painel.

Nosso programa conter dois painis: um para insero dos dados pessoais do aluno e outro para cadastro de suas notas. Tente executar os passos feitos acima, e em seguida insira outro painel em seu programa. A Figura 5 - mostra como deve ficar, por enquanto, o frame de nosso programa.

Figura 5 - Redimensionando um painel. Tecnologia em Anlise e Desenvolvimento de Sistemas

Primeiros passos em Java

15

Como queremos distinguir os dados pessoais da notas dos alunos, adicionaremos uma borda e um ttulo aos nossos painis. Primeiro, clicamos com o boto direito sobre o painel de cima e escolhemos a opo Propriedades. Ser exibida uma tela como a mostrada na Figura 6 -:

Figura 6 - Propriedades do painel.

O item border que aprece em destaque na figura define como ser esta borda que queremos alterar no painel. Para modificar este atributo, devemos clicar no boto do item. Clicando nele, ser exibida uma tela semelhante mostrada na Figura 7 -:

Figura 7 - Modificando a borda do painel. Linguagem de Programao I

16

Captulo 1

Na tela mostrada na Figura 7 -, escolhemos o tipo da borda como Borda de ttulo, e definimos o Ttulo como Dados pessoais do aluno. Podemos tambm alterar a fonte com a qual o ttulo ser escrito, clicando no boto ao lado do item Fonte. Aps clicar no boto do item Fonte, definimos a fonte com estilo Negrito e de tamanho 12, e clicamos em seguida em OK. Voltando tela da Figura 7 -, clicamos novamente em OK, depois no boto Fechar, e visualizamos o painel com a borda e o ttulo definidos nos passos anteriores. A Figura 8 - mostra a modificao na borda e no ttulo do painel:

Figura 8 - Bordas dos painis modificadas.

Na tela mostrada na Figura 8 -, a borda e o ttulo do painel onde ficaro as notas do aluno j foram modificados (repita os passos anteriores para que isso seja feito em seu programa).

ATIVIDADE 1. extremamente importante que voc tente executar os passos acima antes de continuar a leitura do material. Portanto, tente desenvolver um projeto com a interface semelhante que fizemos at aqui.

Tecnologia em Anlise e Desenvolvimento de Sistemas

Primeiros passos em Java

17

1.4 Incluindo componentes nos painisExpandindo a opo Controles Swing da aba Paleta, encontramos os componentes que iremos inserir em nossos painis. O primeiro item a ser preenchido pelo usurio ser o nome do aluno. Para isso, iremos inserir um Campo de Texto, onde este nome ser digitado, e um Rtulo, que serve para explicao do que deve ser inserido neste campo. Para isso, clicamos primeiro em Rtulo e definimos o local onde o rtulo ser inserido, como mostrado na Figura 9 -:

Figura 9 - Inserindo um rtulo.

Para definirmos o texto que aparecer no rtulo, clicamos com o boto direito no mesmo e escolhemos a opo Editar texto, inserindo o texto Nome do aluno. Ao lado do rtulo inclumos um Campo de Texto, como mostrado na Figura 10 -:

Figura 10 - Inserindo um campo de texto. Linguagem de Programao I

18

Captulo 1

Em seguida, editamos o texto do Campo de texto criado acima (neste caso, deixamos o campo em branco para que o usurio digite seu nome) e redimensionamos o campo, produzindo uma tela semelhante mostrada na Figura 11 -:

Figura 11 - Redimensionando o campo de texto.

ATIVIDADE 2. Continue desenvolvendo a interface de nosso programa. Para isso, crie uma tela semelhante mostrada na Figura 12 -:

Figura 12 - Tela do 2

Tecnologia em Anlise e Desenvolvimento de Sistemas

Primeiros passos em Java

19

A prxima seo apresenta a continuao da interface de nosso programa. Por isso, tente realizar o 2 antes de continuar a leitura do material.

Para executarmos nosso programa no NetBeans, basta executarmos o projeto no qual estamos criando-o. Para isso, clique com o boto direito sobre o nome do projeto na aba Projetos (no canto esquerdo do NetBeans), e depois em Executar. Se preferir, basta clicar a tecla F6. Ao execut-lo, o NetBeans pedir para escolhermos a classe principal a ser executada (mais adiante, explicaremos o que uma classe principal). Por enquanto, escolha a classe pacoteInterface.Interface, que a nica opo da lista.

1.5 Adicionando funcionalidades ao programaNas ltimas sees, comeamos a desenvolver a interface grfica de nosso primeiro programa em Java. Entretanto, o programa ainda no possui funcionalidades. Para isso, vamos incluir um boto para que seja calculada a mdia final do aluno. Um boto inserido atravs do item Boto da opo Controles Swing na aba Paleta (no mesmo local onde encontramos o Rtulo e o Campo de texto anteriormente). Inclumos ento um boto ao lado do campo de texto com a mdia final do aluno e, em seguida, editamos o texto do boto (de forma que seja exibida a frase Calcular Mdia). Veja na Figura 13 - o boto inserido em nossa interface.

Figura 13 - Tornando um campo de texto no-editvel. Linguagem de Programao I

20

Captulo 1

Alm disso, fizemos com que os campos de texto com as notas da prova final e da mdia final deixassem de estar disponveis para serem editados pelo usurio. Para isso, clicamos com o boto direito em cada um dos campos e escolhemos a opo Propriedades. Em seguida, desmarcamos a opo editable (que faz com que ele no seja editvel). A nota da prova final no ficar editvel, a princpio, porque nem todos os alunos fazem prova final. Desta forma, adicionaremos um componente do tipo Caixa de seleo (do ingls, CheckBox) ao lado da campo com a nota da prova final. Como podemos escrever o texto Prova Final ao lado da caixa de seleo, podemos excluir da interface o rtulo Prova Final. Veja a nova interface na Figura 14:

Figura 14 - Incluindo uma caixa de seleo.

O que queremos que o campo com a nota da prova final passe a ser editvel quando a caixa de seleo for selecionada. Portanto, vamos definir uma ao a ser executada quando este evento ocorrer (ou seja, quando o usurio selecionar a caixa de seleo). Para isso, clicamos com o boto direito do mouse sobre a caixa de seleo que acabamos de criar, depois em Eventos, depois em Action (que significa ao em portugus) e depois na nica opo disponvel (actionPerformed [jCheckBox1ActionPerformed]). Repare que agora o NetBeans est exibindo o cdigo fonte da interface de nosso programa. Na verdade, o cdigo fonte j podia ser exibido desde quando criamos nosso Frame. Para isso, bastava alternarmos entre os botes CdigoTecnologia em Anlise e Desenvolvimento de Sistemas

Primeiros passos em Java

21

Fonte e Projeto acima do cdigo (mostrados no topo das telas da Figura 2 - at a Figura 5 - deste captulo).

O cdigo fonte exibido pelo NetBeans contm vrios detalhes da linguagem Java que ainda no foram explicados neste material. No se preocupe com isto agora. Mais adiante, explicaremos todos estes detalhes.

Por enquanto, nossas atenes devem ser voltadas para o trecho de cdigo mostrado a seguir:

O trecho de cdigo comentado acima o local onde iremos inserir a ao a ser realizada quando nosso evento ocorrer. O que precisamos fazer alterar o estado do atributo editable do campo de texto com a nota do aluno. Para isso, iremos alterar o trecho de cdigo acima, adicionado os seguintes comandos:

Na primeira linha adicionada ao cdigo, verificamos se o campo jTextField6 atualmente editvel ou no. Text Field em portugus significa campo de texto, e o campo de texto que estamos alterando se chama jTextField6 porque foi o sexto a ser criado. Para verificar o nome de um componente qualquer em seu programa, clique no boto Projeto que fica acima do cdigo fonte do programa (para exibir o Frame com sua interface), depois clique com o boto direto do mouse sobre o componente cujo nome voc deseja saber, e escolha a opo Propriedades. O nome do componente aparecer no topo e no final da janela Propriedades. O mtodo isEditable( ) retorna um valor lgico (verdadeiro ou falso) indicando se o campo est editvel ou no (verdadeiro, para editvel; falso, para caso contrrio). O mtodo setEditable( ) recebe um valorLinguagem de Programao I

22

Captulo 1

lgico como parmetro e modifica o estado editvel do campo. O operador ! em Java equivale negao (ou seja, transforma verdadeiro em falso, e falso em verdadeiro). Portanto, se o campo for editvel e clicarmos na caixa de seleo, ele passa a no ser mais editvel. Caso contrrio, se clicarmos na caixa de seleo, ele volta a ser editvel. Execute seu projeto e verifique se a ao est sendo executada corretamente. Veja na Figura 15 que nosso campo com a nota final passou a ser editvel aps clicarmos na caixa de seleo.

Figura 15 - Executando a primeira ao de nosso programa.

Agora que o usurio j consegue incluir a nota da prova final de um aluno, podemos finalmente calcular sua mdia final. O clculo dever ser efetuado quando o usurio clicar no boto Calcular Mdia. Portanto, precisamos definir a ao que ser executada quando ocorrer o evento (ou seja, quando o usurio clicar no boto). Para isso, volte tela de exibio do Frame, clique com o boto direito do mouse sobre o boto adicionado ao Painel Notas do aluno e escolha a opo Eventos, depois Action e, por fim, actionPerformed (como fizemos para definir a ao anterior). Desta vez, foi includo no cdigo fonte o seguinte trecho de cdigo:

Tecnologia em Anlise e Desenvolvimento de Sistemas

Primeiros passos em Java

23

A seguir, mostramos o trecho de cdigo necessrio para efetuarmos o clculo da mdia final do aluno e, em seguida, explicamos o que o cdigo faz:

Como podemos observar no trecho de cdigo acima, Java possui o tipo double, assim como C, que utilizado para representar um nmero real com preciso dupla. Entretanto, os campos de texto digitados pelo usurio so tratados sempre como String. Para calcularmos a mdia, portanto, precisamos encontrar os valores digitados e transform-los em double. O mtodo this.jTextField3.getText( ), por exemplo, recupera o texto digitado no campo jTextField (que corresponde primeira nota do aluno). O mtodo Double.parseDouble foi utilizado, ento, para transformar o texto com esta nota em double. O mtodo this.jTextField6.isEditable(), j explicado nesta mesma seo, retorna se o campo de texto com a nota da prova final est editvel ou no. Em nosso caso, isso significa se o aluno fez ou no prova final. Por fim, Double. toString(media) transforma a mdia final (que um double) em String, para que ela seja definida como o texto do campo com a mdia final atravs do mtodo this.jTextField7.setText(Double.toString(media)).

Linguagem de Programao I

24

Captulo 1

ATIVIDADE 3. Agora desenvolva seu programa com calma, execute-o, e verifique se a mdia est sendo calculada corretamente. No se preocupe muito com aspectos da linguagem Java que voc no conhece, pois os mesmos sero explicados em detalhes a partir do prximo captulo. No mais, seja bem-vindo ao mundo dos programadores Java, que a linguagem mais utilizada no mercado de trabalho atualmente!

No apague seu projeto! Iremos retom-lo no captulo 4. Se precisar acessar os arquivos de seu projeto, eles ficam armazenados dentro da pasta NetBeans Projects, que fica na pasta Meus Documentos.

Tecnologia em Anlise e Desenvolvimento de Sistemas

INTRODUO LINGUAGEM JAVA

Prezado aluno, No primeiro captulo deste material, criamos nosso primeiro programa em Java. Para isso, partimos da criao da interface do programa, o que no to comum: geralmente, a interface s feita aps projetarmos e desenvolvermos um sistema (afinal, a interface apenas a parte do programa que ser exibida ao usurio). A lgica por trs de um programa pode ser desenvolvida antes de a interface ser criada. Neste captulo, vamos mostrar alguns conceitos bsicos e os tipos de dados desta linguagem, que ser utilizada em todos os exemplos deste material. Existem diversas linguagens orientadas a objetos, mas optamos por estudar a linguagem Java devido a seu crescimento no mercado atual. A seguir, apresentaremos diversas questes referentes a ela. Neste momento, deixaremos de lado a construo de interfaces grficas para nos concentrarmos nos aspectos mais simples da linguagem. Voltaremos a mostrar exemplos de interfaces a partir do captulo 4. Ao trmino deste captulo, voc dever ser capaz de criar programas simples em Java, de manipular suas variveis, de controlar o fluxo dos programas utilizando if-else, e de criar laos com for e while. Uma dica importante: preste bastante ateno na sintaxe, pois Java case sensitive (sensvel ao caso), ou seja, o compilador diferencia letras maisculas de minsculas.

2.1 Programa simples em JavaNeste captulo ainda no mostraremos os conceitos de orientao a objeto, que uma das principais caractersticas da linguagem Java. Tambm deixaremos um pouco de lado a criao de interfaces grficas, que iniciamos no captulo passado, e qual retomaremos mais para frente. Por enquanto, vamos nos focar na criao de programas em Java semelhantes aos que crivamos em C. Apresentamos a seguir um exemplo simples de cdigo na linguagem Java.

26

Captulo 2

A principal diferena que podemos notar j de incio que todo programa em Java inicia-se com a definio de uma classe. Uma classe definida atravs da palavra reservada class, seguida pelo nome da classe (neste caso, o nome da classe Exemplo01). Por conveno, todo nome de classe inicia-se com uma letra maiscula.

Preste bastante ateno na sintaxe, pois Java case sensitive (sensvel ao caso), ou seja, o compilador diferencia letras maisculas de minsculas.

Uma classe em Java composta por mtodos (considerados funes ou procedimentos em outras linguagens de programao). Obrigatoriamente, a classe principal (aquela que ser executada inicialmente pelo programa) deve possuir um mtodo chamado main, assim como em C, que invocado quando a classe executada.

A palavra main significa principal em ingls. O mtodo main, portanto, ser o mtodo principal do seu programa.

Os atributos public e static sero descritos mais adiante. O atributo void, assim como em C, indica que o mtodo no possui retorno. O argumento String args[ ] um vetor de Strings formado por todos os argumentos passados ao programa na linha de comando quando o programa invocado. O comando System.out.println ( ) imprime algo na tela. Para compilar e executar o programa, primeiro preciso salv-lo com o nome Exemplo01.java. Voc pode faz-lo at mesmo em um editor de texto simples, mas continuaremos a mostrar nossos exemplos no NetBeans. Para no haver confuso com os cdigos do captulo passado, crie um novo projeto no NetBeans. Desta vez, deixe marcadas as opesTecnologia em Anlise e Desenvolvimento de Sistemas

Introduo linguagem Java

27

Criar classe principal (defina o nome da classe principal como Exemplo01) e Definir como projeto principal. A classe Exemplo01 criada j ir possuir um mtodo main. Neste caso, apenas insira no mtodo o comando System.out.println (Primeiro exemplo).

Em Java, o nome do arquivo deve ser sempre igual ao nome da classe, seguida da extenso .java. No caso do nosso exemplo, o nome do arquivo precisa ser Exemplo01.java porque o nome da classe Exemplo01.

Em seguida, execute o projeto. Como no criamos uma interface para o programa, a sada ser exibida na aba Sada, localizada abaixo dos cdigos fontes no NetBeans. Veja em destaque na Figura 16 - esta regio com a sada do programa:

Figura 16 - Sada de um programa Java no NetBeans

Se voc for executar o programa fora do NetBeans, necessrio abrir o prompt na pasta em que salvou o arquivo e digitar os seguintes comandos:

Linguagem de Programao I

28

Captulo 2

O primeiro comando gera o bytecode do programa, chamado Exemplo01.class. O segundo executa o programa a partir do bytecode gerado no primeiro comando.

Se for necessrio incluir mais de uma classe em um mesmo arquivo, s uma delas poder ser public. Esta ser a classe principal do arquivo. Caso nenhuma classe seja public, o compilador entender que a classe principal aquela com o mesmo nome do arquivo.

Leia mais sobre Java em : http://javafree.uol.com.br/artigo/871498/Tutorial-Java-Oque-e-Java.html

Curiosidade: O que acontece se voc tentar compilar um arquivo sem nada dentro (nenhuma letra e nenhuma quebra de linha)?

ATIVIDADE 4. Modifique o programa anterior para que ele imprima duas mensagens, uma em cada linha.

2.2 Tipos de Dados e Definio de VariveisAlm dos tipos de dados existentes no C, o Java possui tambm um tipo lgico (boolean), que pode assumir os valores verdadeiro (true) ou falso (false). Os tipos de dados primitivos da linguagem Java esto enumerados no Quadro 1, mostrado a seguir:

Tecnologia em Anlise e Desenvolvimento de Sistemas

Introduo linguagem Java

29

Tipo de dados Literal (caractere)

Definio Letras, nmeros e smbolos.

Tipo char

Tamanho (bits) 16 8 32 16 64 32

Exemplos a, ?, * 0, 1, 23 0, 1, 23 0, 1, 23 0, 1, 23 0.34 8.65 0.34 8.65 true false

Inteiro

Byte Nmeros Int inteiros positivos ou short negativos. Long

Nmeros float com casas Real (ponto decimais, flutuante) positivos ou double negativos. Lgico (Booleano) Verdadeiro (1) ou falso (0)

64

boolean

8

Quadro 1 - Tipos de dados primitivos em Java

Para uma varivel ser utilizada, ela precisa ser declarada. Opcionalmente, ela pode ser inicializada j no momento de sua declarao. O cdigo a seguir mostra alguns exemplos de manipulao de variveis em Java:

Linguagem de Programao I

30

Captulo 2

Como voc pde perceber no ltimo exemplo, um comentrio em Java pode ser escrito com // (para comentar apenas at o final da linha) ou com /* */ (para comentar tudo o que estiver entre o /* e o */). Para identificar a documentao, utilizamos /** */

A sada do programa acima ser:

Caso uma varivel do tipo char, byte, short, int, long, float ou double no seja inicializada, ela criada com o valor 0. Se ela for do tipo boolean, seu valor padro ser false.

possvel criar mais de uma varivel do mesmo tipo na mesma linha, separando-as por uma vrgula. Exemplo: int x, y, z;

ATIVIDADE 5. Insira em seu programa duas variveis de cada um dos tipos primitivos do Java. Coloque valores diferentes em cada uma delas e depois imprima-as. 6. Altere trs vezes o valor de uma das variveis do programa anterior. Imprima a varivel a cada nova atribuio.

Em Java, existem duas formas de convertermos valores de um tipo para outro: 1. a converso implcita, na qual os dados so convertidos automaticamente, sem a preocupao do programador. Ela ocorre, por exemplo, quando convertemos um nmero inteiro para um nmero real. Neste caso, a converso implcita porque bvio para oTecnologia em Anlise e Desenvolvimento de Sistemas

Introduo linguagem Java

31

compilador que um nmero inteiro pode ser representado tambm como um nmero real. Veja um exemplo a seguir:

2. a converso explcita, quando o programador precisa explicitar no cdigo que um valor ser convertido de um tipo para outro. No caso de um nmero real para um inteiro, por exemplo, pode haver perda na preciso do nmero (por isso necessrio que o usurio deixe explcito que ele quer realizar a converso). Veja um exemplo a seguir:

O resultado da execuo do trecho de cdigo acima :

Cuidado: o tipo boolean no pode ser convertido para nenhum outro tipo. Seguindo o sentido das flechas da Figura 17 -, vemos os tipos que podem ser implicitamente convertidos em outros. Seguindo o sentido contrrio, vemos os tipos que precisam ser convertidos explicitamente:

short

byte int char long float double

Figura 17 - Converses possveis entre tipos primitivos em Java

Linguagem de Programao I

32

Captulo 2

ATIVIDADE 7. Crie trs variveis do tipo int contendo os valores 12, 13 e 14. Converta cada uma para um float e imprima o valor convertido. Qual o resultado impresso na tela? 8. Agora, crie trs variveis do tipo float contendo os valores 12.3, 12.5 e 12.8. Converta cada uma para int e imprima o valor convertido. Qual o resultado impresso na tela? 9. Tente imprimir a soma de uma varivel inteira com uma do tipo float. O que acontece?

2.3 Strings

String uma classe em Java que guarda uma palavra, ou seja, uma sequncia de caracteres.

String uma classe para representarmos uma cadeia de caracteres e que oferece diversos mtodos para manipularmos essa cadeia. Objetos da classe String podem ser concatenados com o operador +. Exemplos:

A sada do trecho de cdigo acima :

Para compararmos se o valor de duas Strings so iguais, utilizamos o mtodo equals (o operador = = no compara Strings). Veja no exemplo a seguir:

Tecnologia em Anlise e Desenvolvimento de Sistemas

Introduo linguagem Java

33

O trecho de cdigo a seguir mostra outros mtodos teis da classe String:

A sada do trecho de cdigo acima :

ATIVIDADE 10. Crie uma String com seu nome completo e sobrescreva as ocorrncias da letra a pela letra p. Como ficou seu nome? 11. Utilize o mtodo split para separar cada nome e sobrenome da String acima.

Linguagem de Programao I

34

Captulo 2

2.4 ArraysArrays (vetores) em Java podem conter qualquer tipo de elemento valorado (tipos primitivos ou objetos), mas voc no pode armazenar diferentes tipos em um simples array (por exemplo, voc pode criar um array de inteiros, ou um array de strings, ou um array de array, mas voc no pode criar um array que contenha ambos os objetos strings e inteiros). O trecho de cdigo abaixo mostra algumas declaraes possveis de arrays:

Uma das formas de criarmos um objeto array usando o operador new, que criar uma nova instncia de um array. Por exemplo:

Neste caso, ser criado um array de 30 inteiros (inicializados com o valor 0). Tambm possvel criarmos um array ao mesmo tempo em que o declaramos.

Uma vez que o array j foi devidamente criado, podemos acessar e/ou alterar o valor dos elementos em cada um de seus ndices. Os arrays em Java sempre iniciam com elementos na posio 0. Por exemplo:

A ltima linha do trecho de cdigo acima causa um erro de compilao, pois o ndice 2 no existe em um array com apenas dois elementos. Arrays podem ter mais de uma dimenso. Um array bidimensional, por exemplo, um array de arrays. Podemos simular uma matriz de nmeros, por exemplo, usando arrays bidimensionais. Veja um exemplo a seguir:Tecnologia em Anlise e Desenvolvimento de Sistemas

Introduo linguagem Java

35

Para sabermos o tamanho de um array, podemos utilizar o atributo length, assim como em uma String. A partir do momento que um array foi criado, ele no pode mudar de tamanho. Se voc precisar de mais espao, ser necessrio criar um novo array e, antes de se referir a ele, copie os elementos da array antigo. Mais adiante, aprenderemos tcnicas mais eficientes para preencher e manipular nossos Arrays.

ATIVIDADE 12. Crie um novo programa, que armazene um vetor com as notas de 10 alunos, e imprima a mdia dessas notas. 13. Crie no mesmo programa acima um array de Strings com o nome dos meses do ano. Crie uma varivel inteira com um valor entre 1 e 12, e imprima o nome do ms correspondente ao valor da varivel

Leia mais sobre caractersticas bsicas de Java em : http://javafree.uol.com.br/artigo/871496/Tutorial-Java-2Caracteristicas-Basicasindex

2.5 OperadoresOs operadores aritmticos para manipularmos as variveis em Java so os mesmos da linguagem C. Utilizamos + para somar dois valores, - para subtrair, * para multiplicar, / para dividir, % para calcular o resto da diviso inteira, ++ para incrementar um valor e -- para decrementar. Java tambm possui vrios operadores para testar igualdade e magnitude. Utilizamos = = para verificar se dois valores so iguais, != paraLinguagem de Programao I

36

Captulo 2

verificar se so diferentes, para verificar se ele maior, = para maior ou igual. Para combinarmos valores ou expresses lgicas, utilizamos && (operao E), | | (operao OU) e ! para negar um valor.

ATIVIDADE 14. Crie um nmero inteiro de 3 dgitos. Utilize os operadores / e % para obter o nmero com os algarismos na ordem inversa. Exemplo: x = 356 e y = 653 15. Crie uma varivel inteira contendo um nmero de segundos e imprima o nmero equivalente de horas, minutos e segundos. 16. Avalie o resultado da expresso a seguir:((3