aula02 java

Upload: alexandro-souza

Post on 06-Jan-2016

51 views

Category:

Documents


0 download

DESCRIPTION

bnnnn

TRANSCRIPT

  • DANIEL DE CAMARGO JAVA

    1

    Ttulo: Introduo Linguagem Java Data: 19/1/2011 Descrio: Primeiro Programa, regras de nomenclatura, tipos de dados e variveis

    Primeiro Programa em Java Veremos aqui o nosso primeiro cdigo em linguagem Java. A nica coisa que esse programa faz imprimir (mostrar) na tela uma mensagem dizendo: Bem vindo ao mundo Java! /*Primeiro Programa da Disciplina

    * Anlise e Projetos de Sistemas

    * Orientado a Objeto II

    *

    * @autor: Daniel de Camargo

    */

    public class MeuPrimeiroPrograma {

    public static void main(String[] args) {

    System.out.println("Bem vindo ao mundo Java!");

    }

    }

    O resultado o seguinte:

    Primeiramente, iremos entender algumas estruturas bsicas da linguagem.

    //

    Usamos // para indicar que foi iniciado um comentrio. Um comentrio serve apenas para documentar o cdigo. Isso quer dizer que, ao ser executado este programa, as linhas marcadas como comentrio sero ignoradas. Este tipo de comentrio de linha nica, ou seja, comea nas barras e termina no final da linha. Se quisermos criar comentrio de vrias linhas podemos utilizar /* */, no qual /* inicia o comentrio e */ termina. Por exemplo: //Este um comentrio de uma linha

  • DANIEL DE CAMARGO JAVA

    2

    /*Este um comentrio de vrias linhas*/

    public class MeuPrimeiroPrograma

    public class MeuPrimeiroPrograma a criao da classe. Como Java totalmente orientado a objeto, sua programao feita dentro de classes e mais classes. O assunto de classes ser abordado mais a frente. O importante a princpio entender que o programa para funcionar deve ter pelo menos uma classe com o mtodo principal (main).

    public static void main

    public static void main o mtodo principal do cdigo. Quando executamos um programa esse mtodo que chamado. Em outras palavras, sem ele no h programa.

    (String[ ] args)

    (String[] args) o argumento passado ao mtodo main. Qualquer programa pode ser iniciado ou no com argumentos que modificam sua execuo, trataremos futuramente de argumentos com programas.

    { }

    As chaves so usadas para marcar o bloco de dados. No caso deste algoritmo, ele marca o cdigo que ser executado na classe MeuPrimeiroPrograma e tambm todo o cdigo que ser executado quando o mtodo main for chamado.

    System.out.println System.out.println a sada padro de Java. este mtodo que indica o que deve aparecer na tela.

    ("Bem vindo ao mundo Java!")

    ("Bem vindo ao mundo Java!") o argumento do mtodo System.out.println. Neste caso o que deve ser apresentado na tela. Toda linha de comando em Java termina com um ponto-e-vrgula (;).

    Regras e convenes de nomenclatura

  • DANIEL DE CAMARGO JAVA

    3

    Quando programamos em Java, devemos levar em considerao as convenes de nomenclatura para deixar nosso cdigo o mais legvel e documentvel possvel, pois um dos objetivos da programao orientada a objetos o reaproveitamento do cdigo. muito provvel que quem no tenha experincia com programao sinta dificuldade de identificar todos os termos utilizados neste artigo, mas aos poucos tudo que ser visto aqui ser detalhado mais adiante, embora que este artigo se torna trivial medida que programamos. Portanto, quem j conhece programao em algum outro tipo de linguagem (como Delphi ou C++) se sentir mais a vontade. Porm, se nunca programou antes, com certeza, este artigo ser didtico o suficiente para que entenda essas regras. Muitos compiladores como Eclipse e NetBeans do um grande auxilio na hora de criarmos nosso projeto nos informando sobre as convenes de nomenclatura no momento que estamos criando os pacotes, classes, etc.

    Nome de Classes

    Por conveno, toda classe deve comear com uma letra maiscula e, de preferncia, no pode conter letras no ASCII (caracteres de lngua de origem latina, como caracteres acentuados). Portanto, no possvel declarar uma classe com qualquer caracter especial (@, #, $, %, &, *, _, etc...) ou nmero. Caso o nome de uma classe seja composto por mais de uma palavra, a primeira letra de cada palavra deve ser em maiscula. O nome da classe deve ser exatamente o mesmo nome de seu arquivo fonte ( .java ). O nome da classe deve fazer referncia total ao seu objeto (atributos e mtodos contidos dentro da classe). Por exemplo: se tivermos uma classe com os atributos canal, volume e sintonia; e os mtodos mudarCanal (), aumentarVolume () e diminuirVolume (); ento, possivelmente chamaramos esta classe de TV ou Televisao. Contudo, em uma classe que contivesse o atributo corDasPenas e o mtodo voar () jamais chamaramos de Pessoa (por que pessoas no tem penas e nem voam). Exemplos de nomes de classes: Pessoa, ImpostoDeRenda, Conta, AgenciaDeEmprego, entre outras.

    Nome de Pacotes

    Os pacotes devem comear com uma letra minscula e podem usar letras no ASCII. Jamais poderemos iniciar o nome de um pacote com caracteres especiais (@, #, $, %, &, *, _, etc...) ou nmero. Caso o nome de um pacote seja composto por mais de uma palavra, a primeira letra de cada palavra deve ser em maiscula.

  • DANIEL DE CAMARGO JAVA

    4

    O nome do pacote deve ser o mesmo nome da pasta a qual ele se refere. Por exemplo, se os arquivos fonte esto na pasta criptografia, ento o nome do pacote deve ser criptografia. O nome do pacote deve fazer referncia total s funes exercidas pelas classes dentro do pacote, pois pacotes servem basicamente para organizar os arquivos de cdigo fonte de nosso projeto. Exemplos de nomes de pacotes: criptografia, usurios, conexesDeBancoDeDados , etc.

    Nome de atributos ou variveis

    Os atributos (variveis) podem comear com qualquer letra e os caracteres $ ou _, porm no podem comear com nmeros. Caso o nome de um atributo (varivel) seja composto por mais de uma palavra, a primeira letra de cada palavra deve ser em maiscula. Exemplos de nomes de atributos ou variveis: x, y, resultado, valorDeX, valorDeY, ligado, etc.

    Nome de atributos finais ou constantes

    Os atributos finais (constantes) devem ser escritos em letras maisculas. Usamos underline (_) para separar nomes compostos de atributos finais (constantes). Exemplos de nomes de atributos finais ou constantes: TAMANHO, PARAR_DE_EXECUTAR, entre outros.

    O que so atributos e variveis

    Para quem j programou antes em alguma linguagem de programao no orientada a objetos, deve achar estranho o termo atributo porque, na verdade, est mais acostumado com o termo varivel. Mas, qual a diferena entre atributos e variveis? Nenhuma. Atributos e variveis so a mesma coisa em questo de funcionalidade. Ambos so endereos de memria que tem um espao ou tamanho definido de acordo com o tipo de dado que ser guardado, por exemplo: caractere, nmero, nmero decimal, etc. Em Java, costumamos utilizar o termo atributo, que nada alm do que uma varivel que est dentro de uma classe. Como tudo que fazemos em Java est contido dentro de uma classe, ento usamos o termo atributo ao invs de varivel.

    Tipos de dados e declarao de atributos

  • DANIEL DE CAMARGO JAVA

    5

    Todo programa de computador deve ser capaz de lidar com dados para conseguir fazer seus processos como, por exemplo, somar, multiplicar, dividir, etc... Usar atributos a melhor forma de manipular os dados. Os tipos de dados so o que definem a quantidade de memria do computador que ser utilizado para guardar tal dado. Cada tipo de dado tem um tamanho diferente e por conseqncia seu alcance tambm. O que queremos dizer que se declararmos um atributo para guardar um nmero inteiro, jamais poderemos guardar um nmero decimal, porque um nmero decimal ocupa mais espao de memria que um inteiro. Para declararmos qualquer tipo de atributo, usamos a seguinte ordem: primeiro o tipo de dado e depois o nome do atributo. Vale lembra que como j vimos, devemos seguir as regras de nomenclatura. Vamos iniciar com os tipos de dados inteiros que so os mais simples. Em Java, os nmeros inteiros so divididos em quatro tipos: byte, short, int e long. Esses quatro guardam o mesmo tipo de dado, mas ocupam espaos de memria diferente, o que afeta em seu alcance. O tipo byte o de menor alcance entre os inteiros. Como o prprio nome sugere, ele consome apenas um byte (8 bits) e pode guardar valores entre -128 e 127. O tipo short guarda inteiros de 2 bytes (16 bits) e pode guardar nmeros entre -32.768 a 32.767. O tipo int o tipo de dado mais comum. Ele consome 4 bytes (32 bits) e guarda valores entre -2.147.483.648 e 2.147.483.647. Long o tipo de dado com maior alcance entre os inteiros. Conseqentemente, tambm o que ocupa mais espao (8 bytes ou 64 bits). Tem um grande alcance que fica entre -9,22E+18 (exatos -9.223.372.036.854.775.808) e 9,22E+18 (exatos 9.223.372.036.854.775.807). Existem os tipos de dados prprios para caracteres que o char. O tipo char ocupa 2 bytes, o que torna Java ideal para programar em lnguas latinas, asiticas ou qualquer outra que utilize caracteres diferentes do padro ASCII. O padro ASCII utiliza apenas um byte que fornece 256 letras diferentes, mas o padro utilizado em Java (ISO) nos d a possibilidade de at 65.536 caracteres diferentes. Para nmeros decimais utilizamos dois tipos de dados, dependendo da necessidade de seu alcance e preciso (nmeros aps a vrgula). O tipo de dado mais comum para nmero decimal o float. Em um tipo de dado float, podemos guardar nmeros grandes que vo desde 1,4E-45 at 3,4028235E+38

  • DANIEL DE CAMARGO JAVA

    6

    Para nmero decimais com grande preciso ou valores extraordinrios (geralmente utilizados em matemtica aplicada e complexa como clculos fsicos, qumicos, astrolgicos, meteorolgicos, etc) utilizamos o tipo de dado double. Double o tipo de dado mais complexo que h em Java e o maior valor possvel de se armazenar 1,797.693.134.862.315.7E+308. Muito mais do que qualquer programador precisa. Para ilustra melhor essa explicao, abaixo est um pequeno algoritmo com alguns atributos e seus valores mnimos e mximos. /*

    * Programa exemplo dos tipos de dados

    * existentes em Java

    *

    * @autor: Daniel de Camargo

    */

    public class TiposDeDados {

    public static void main(String[] args) {

    System.out.println("Tipos de dados em Java: \n" +

    "\nMenor Byte: " + Byte.MIN_VALUE +

    "\nMaior Byte: " + Byte.MAX_VALUE +

    "\nMenor Short Int: " + Short.MIN_VALUE +

    "\nMaior Short Int: " + Short.MAX_VALUE +

    "\nMenor Int: " + Integer.MIN_VALUE +

    "\nMaior Int: " + Integer.MAX_VALUE +

    "\nMenor Long: " + Long.MIN_VALUE +

    "\nMaior Long:" + Long.MAX_VALUE +

    "\nMenor Float: " + Float.MIN_VALUE +

    "\nMaior Float: " + Float.MAX_VALUE +

    "\nMenor Double: " + Double.MIN_VALUE +

    "\nMaior Double: " + Double.MAX_VALUE);

    }

    }

    O resultado do cdigo acima :

  • DANIEL DE CAMARGO JAVA

    7

    Atribuio de Valores a Variveis ou Atributos

    H vrios tipos de dados em Java, cada um com um consumo de memria determinado que afeta diretamente o seu alcance. Veremos agora como atribuir valores a esses endereos de memria (atributo ou varivel). Para atribuirmos valor a uma varivel ou atributo usamos o operador =. Neste caso, o sinal de igual no significa igualdade, mas que um valor ser atribudo. A regra bsica que sempre o que estiver esquerda do "=" receber o valor que estiver direita. Por exemplo: se expressarmos var1 = 10 queremos dizer que a varivel var1 receber o nmero 10. Pronto! Agora, temos o nmero 10 gravado na memria. Podemos tambm atribuir valores contidos em outras variveis. Por exemplo:

    var1 = 20; var2 = var1;

    A varivel var1 recebe o nmero 20, depois a varivel var2 recebe o valor de var1 (que 20). Pronto! Agora, temos duas variveis guardando o mesmo nmero (20).

    Inicializao de variveis ou atributos

    Muitas vezes, precisamos inicializar as variveis ou atributos para que possuam um valor desde o incio do programa. Como h muitos tipos de dados em Java, seus criadores desenvolveram formas de escrita para que diferenciem os vrios tipos de dados.

  • DANIEL DE CAMARGO JAVA

    8

    Primeiramente, comearemos com os mais simples: os inteiros. Os nmeros inteiros comuns e do tipo byte so os mais simples de se inicializar, pois basta atribuirmos seu valor diretamente. Logicamente, precavendo-se dos limites de alcance do tipo inteiro vistos na pgina de tipos de dados. Por exemplo:

    int var1 = 10; int var2 = 500; int var3 = 65000; byte var1 = -100; byte var2 = 50;

    Os nmeros inteiros longos tm duas formas de serem inicializados. Podemos escrev-lo diretamente se, e somente se, seu valor for menor que o alcance de um inteiro comum. Mas se o valor atribudo for maior que o valor permitido por um inteiro comum, ento, no final deve ser acrescentado uma letra L (maiscula ou minscula, no h diferena aqui). Exemplo:

    long var1 = -65000; long var2 = 3590; long var3 = 15000000000L; long var4 = -6740000000L;

    A inicializao do tipo double e float um pouco diferente. possvel apenas digitar um nmero como sendo inteiro que o compilador entender facilmente, porm, se quisermos utilizar as casas decimais, devemos utilizar um ponto para separar a parte inteira da decimal. Outro fato ao utilizar casas decimais que o tipo float deve ser diferenciado do tipo double. Conseguimos fazer isso facilmente digitando uma letra F ao final do nmero (no importa se a letra maiscula ou minscula). Exemplo:

    double var1 = 12045741359; float var1 = 745621; double var2 = 10.658745965; float var2 = 0.5f;

    Char deve ser inicializado com uma letra entre aspas simples. O importante entender que em uma varivel do tipo char s pode ser colocada uma letra, no uma frase. Alm do mais, neste caso h diferena entre maisculas e minsculas. Exemplo:

    char var1 = 'a'; char var2 = 'A';

    Se quisermos criar uma frase devemos guard-la em uma string. Apesar de String no ser um tipo de dado em Java, mas sim uma classe, este com certeza o elemento mais utilizado. Uma cadeia de caracteres (string) pode ser inicializada de trs formas: 1) Como uma string inexistente, ou seja,

  • DANIEL DE CAMARGO JAVA

    9

    sem valor algum. Para isso utilizamos a palavra reservada null; 2) Como uma frase vazia; 3) Como uma string completa. Com exceo da inexistente, toda string deve estar dentro de aspas duplas ( " " ). Se por acaso, precisarmos digitar uma aspa dentro de uma string, estas aspas devem vir precedidas de uma barra invertida (\). Exemplo:

    String var1 = null; String var2 = ""; String var3 = "Cadeia de caracteres"; String var4 = "entre aspas: \"String em Java\".";

    O tipo booleano possui apenas dois valores: verdadeiro e falso. True para verdadeiro e False para falso. Exemplo:

    boolean var1 = true; boolean var2 = false;

    Neste tipo de dado no h possibilidade de ter outro valor.

    Exemplos de Aplicaes em Java

    Aerith (https://aerith.dev.java.net/): Mashup para criao de slideshows georeferenciados.

    A interface do Maple (http://www.maplesoft.com/) em Java.

    Radio Explorer (http://www.radioexplorer.com.ru/en): exibe/visualiza horrios de transmisso internacionais de rdio.

    NASA World Wind (http://worldwind.arc.nasa.gov/java e http://worldwindcentral.com/wiki/Java) SDK para desenvolvimento de aplicaes de visualizao da Terra.

    Insider for Oracle (http://www.fourthelephant.com/insider.html): monitoramento e gerenciamento de bancos de dados Oracle em tempo real.

    ThinkFree Office (http://product.thinkfree.com/): Office em Java.

    Perrone Robotics (http://www.perronerobotics.com/) e Team Jefferson (http://teamjefferson.com/): robs autnomos.

    Controle de Fluxo de Dados O controle de fluxo efetuado atravs do uso de condicionais, que so estruturas que modificam o fluxo de execuo normal do programa.

  • DANIEL DE CAMARGO JAVA

    10

    Quando existe apenas uma instruo aps o if no precisamos abrir um bloco com as chaves. Se existirem mais instrues a abertura do bloco necessria. Se houver mais de uma condio usa-se o else como podemos observar na segunda coluna acima. Veja o exemplo abaixo e comente o mesmo na lista de discusso.

    No caso do while as instrues sero executadas enquanto a expresso booleana for verdadeira. O do-while executa a instruo pelo menos uma vez e continua executando enquanto a expresso booleana for verdadeira. Observe os exemplos seguintes

  • DANIEL DE CAMARGO JAVA

    11

    O for pode conter apenas uma instruo no seu corpo. Neste caso no necessrio abrir um bloco. Isso assim porque o for j implementa alguns comandos na sua assinatura, ou seja, no seu cabealho, como a inicializao da varivel e o passo da repetio, ou seja, o incremento/decremento da varivel. Veja os exemplos:

  • DANIEL DE CAMARGO JAVA

    12

    Entrada de Dados

    Como eu fao para ler algo que o usurio digita no prompt? Observe o programa abaixo:

    Com o estudo do programa acima j d para voc solicitar que o usurio digite alguma coisa e utilizar o que o mesmo est digitando.

    Exerccios

    01 - Escreva um programa que imprima o resultado das expresses abaixo: 3 2 1 + 2 + 1 + 3 2 x 3 4 x 5 2 + 6 3 / 7 x 9 3 % 4 8 02 - Escreva um programa que declare, inicialize e imprima as seguintes variveis: Inteiro i de 32 bits com valor 1 Inteiro j de 64 bits com valor 2 Ponto-flutuante p de 32 bits com valor 20.0 Ponto-flutuante q de 64 bits com valor 30.0 Boolean b com valor verdadeiro Caracter c com valor k 03 - Implemente um programa que recebe um nmero de 1 a 7 e imprime o dia da semana correspondente.

  • DANIEL DE CAMARGO JAVA

    13

    04 - Altere o programa do exerccio anterior para ficar recebendo o nmero dentro de um lao enquanto o nmero for diferente de 0 (zero). 05 - Implemente um programa que recebe repetidamente um nmero de 1 a 12, enquanto esse nmero for diferente de 0 (zero), e imprime o ms correspondente. Quando o nmero estiver fora do intervalo permitido, a mensagem ms invlido dever ser exibida. 06 - Escreva um lao while que execute 20 vezes, imprimindo o valor da varivel x que inicialmente est com valor 10. Converta este lao para um do-while. 07 - Escreva um programa que imprima na tela a soma dos nmeros mpares entre 1 e 30 e a multiplicao dos nmeros pares entre 1 e 30. 08 - Escreva um programa que percorra dois laos de 0 a 10, um interno ao outro, imprimindo os contadores, e quando estes forem iguais, o programa deve passar prxima interao do lao mais externo, caso contrrio, deve imprimir os valores dos contadores dos dois laos. 09 - Desenvolva um programa que solicita ao usurio um nmero inteiro de no mximo 4 dgitos. Inverta esse nmero. 10 Desenvolva um programa que dado um nmero inteiro o programa informe se o mesmo um nmero primo.