<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-4634980943732216641</atom:id><lastBuildDate>Thu, 17 Dec 2009 23:23:07 +0000</lastBuildDate><title>JAVA IMEDIATO - SEU TUTORIAL JAVA</title><description /><link>http://javaimediato.blogspot.com/</link><managingEditor>noreply@blogger.com (andrehbl)</managingEditor><generator>Blogger</generator><openSearch:totalResults>14</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/JavaImediato-SeuTutorialJava" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4634980943732216641.post-1927890662053502068</guid><pubDate>Sat, 29 Mar 2008 03:26:00 +0000</pubDate><atom:updated>2008-07-25T14:30:17.662-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">métodos</category><category domain="http://www.blogger.com/atom/ns#">tipo de retorno</category><category domain="http://www.blogger.com/atom/ns#">method</category><title>[14] Entendendo métodos - PARTE 1 DE 3</title><description>&lt;span style="color: rgb(0, 102, 0);font-size:85%;" &gt;Os &lt;a href="http://pt.wikipedia.org/wiki/M%C3%A9todo_%28programa%C3%A7%C3%A3o%29"&gt;métodos&lt;/a&gt; são as ações de uma classe. Até agora criamos métodos apenas para exibir mensagens no Console, e utilizamos alguns métodos já prontos de outras classes, como o nextInt() da classe Scanner, por exemplo. Neste Post vamos aprender um pouco mais sobre as estruturas dos métodos e como realizar cálculos matemáticos simples dentro dos métodos.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 102, 0);font-size:85%;" &gt;&lt;br /&gt;Estrutura básica de declaração de um método&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 102, 0);font-size:85%;" &gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;MODIFICADOR DE ACESSO&lt;/span&gt;     &lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;TIPO DO RETORNO&lt;/span&gt;      &lt;span style="color: rgb(153, 51, 153);"&gt;IDENTIFICADOR&lt;/span&gt; (&lt;span style="color: rgb(153, 0, 0);"&gt;PARÂMETROS&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Observe esta declaração do método imprimir():&lt;br /&gt;&lt;/span&gt;&lt;pre&gt;&lt;blockquote&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;void&lt;/b&gt;&lt;/span&gt; imprimir(){&lt;br /&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;   //seus comandos de impressão&lt;/span&gt;&lt;br /&gt;}&lt;/blockquote&gt;&lt;/pre&gt;&lt;span style="color: rgb(0, 102, 0);font-size:85%;" &gt;&lt;span style="color: rgb(102, 51, 102); font-weight: bold;"&gt;public&lt;/span&gt;:  é um dos quatro modificadores de acesso existentes na linguagem Java. Falaremos sobre modificadores de acesso em Posts posteriores.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 102); font-weight: bold;"&gt;void&lt;/span&gt;: é um tipo de retorno "vazio". Isto significa dizer que o método imprimir() não retornará nenhum valor. Entraremos em detalhes sobre os tipos de retorno adiante.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;imprimir&lt;/span&gt;: identificador do método. É através do identificador que um método pode ser chamado. Por exemplo, para o método imprimir ser chamado teríamos o seguinte código deve ser chamado:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;imprimir();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt;: dentro dos parênteses devem ser informados quais parâmetros o método requer para que possa ser chamado. No caso do método imprimir(), nenhum parâmetro foi informado.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Tipos de retorno&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);font-size:85%;" &gt;Um método pode retornar valores tanto do tipo primitivo quanto valores do tipo referência. Além desses tipos, um método pode retornar um valor especial, que representa "vazio". Tal valor é representado pela palavra-chave &lt;span style="font-weight: bold;"&gt;void&lt;/span&gt;. Caso o tipo de retorno NÃO seja &lt;span style="font-weight: bold;"&gt;void&lt;/span&gt;, a palavra-chave &lt;span style="font-weight: bold;"&gt;return &lt;/span&gt;deve ser chamada. Esta palavra-chave encerra o método e retorna o valor desejado.&lt;br /&gt;&lt;br /&gt;Embora um método possa conter mais de uma instrução return, apenas uma das instruções return será chamada (a primeira que o compilador encontrar, dependendo do fluxo de execução). Isso quer dizer que um método só retorna um valor a cada vez que ele é chamado.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 102, 0);font-size:85%;" &gt;&lt;span style="font-weight: bold;"&gt;Retornando void&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 102, 0);font-size:85%;" &gt;Quando na declaração de um método está definido que ele retornará &lt;span style="font-weight: bold;"&gt;void&lt;/span&gt;, isso implica em dizer que tal método não retornará valor algum. Qualquer tentativa de retorno de valor causará um erro de compilação. Observe um exemplo válido de um método com tipo de retorno &lt;span style="font-weight: bold;"&gt;void:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;pre&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;void&lt;/b&gt;&lt;/span&gt; imprimeNomes(){&lt;br /&gt;&lt;br /&gt; System.out.println(&lt;span style="color: rgb(0, 0, 255);"&gt;"Java"&lt;/span&gt;);&lt;br /&gt; System.out.println(&lt;span style="color: rgb(0, 0, 255);"&gt;"Imediato"&lt;/span&gt;);&lt;br /&gt; System.out.println(&lt;span style="color: rgb(0, 0, 255);"&gt;"Seu tutorial Java"&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;}&lt;/blockquote&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);font-size:85%;" &gt;Caso alguma tentativa de retorno ocorra, o compilador acusará um erro. Observe este exemplo:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);font-size:85%;" &gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;pre&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;void&lt;/b&gt;&lt;/span&gt; imprimeNomes(){&lt;br /&gt;&lt;br /&gt; System.out.println(&lt;span style="color: rgb(0, 0, 255);"&gt;"Java"&lt;/span&gt;);&lt;br /&gt; System.out.println(&lt;span style="color: rgb(0, 0, 255);"&gt;"Imediato"&lt;/span&gt;);&lt;br /&gt; System.out.println(&lt;span style="color: rgb(0, 0, 255);"&gt;"Seu tutorial Java"&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;   //retorno&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;   return&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;40&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;}&lt;/blockquote&gt;&lt;/pre&gt;&lt;span style="color: rgb(0, 102, 0);font-size:85%;" &gt;O seguinte erro será acusado pelo compilador:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Exception in thread "main" java.lang.Error: Unresolved compilation problem: &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;    Void methods cannot return a value&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Quando o tipo de retorno do método é &lt;span style="font-weight: bold;"&gt;void&lt;/span&gt;, a instrução return pode ser utilizada para finalizar o método, mas não para retornar um valor. Observe este exemplo:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;pre&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;void&lt;/b&gt;&lt;/span&gt; imprimeNomes(){&lt;br /&gt;&lt;br /&gt; System.out.println(&lt;span style="color: rgb(0, 0, 255);"&gt;"Java"&lt;/span&gt;);&lt;br /&gt; System.out.println(&lt;span style="color: rgb(0, 0, 255);"&gt;"Imediato"&lt;/span&gt;);&lt;br /&gt; System.out.println(&lt;span style="color: rgb(0, 0, 255);"&gt;"Seu tutorial Java"&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;   return&lt;/b&gt;&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;}&lt;/blockquote&gt;&lt;/pre&gt;&lt;span style="color: rgb(0, 102, 0);font-size:85%;" &gt;Este código está livre de erros. Quando o compilador ler a instrução &lt;span style="font-weight: bold;"&gt;return&lt;/span&gt;, ele vai simplesmente finalizar o método. Nenhuma ação funcional ocorrerá. Porém, se você inserir neste método alguma instrução abaixo do &lt;span style="font-weight: bold;"&gt;return&lt;/span&gt;, o compilador lhe exibirá a seguinte mensagem:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Exception in thread "main" java.lang.Error: Unresolved compilation problem: &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;    Unreachable code&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Isto quer dizer que há códigos no método que não podem ser alcançados. Isto ocorre porque o &lt;span style="font-weight: bold;"&gt;return &lt;/span&gt;finaliza o método, desde já não faria sentido para o compilador existir instruções que não serão alcançadas dentro do  método.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 102, 0);font-size:85%;" &gt;&lt;/span&gt;&lt;span style="color: rgb(0, 102, 0);font-size:85%;" &gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 102, 0);font-size:85%;" &gt;&lt;span style="font-weight: bold;"&gt;Retornando Tipos Primitivos&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 102, 0);font-size:85%;" &gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);font-size:85%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 102, 0);font-size:85%;" &gt;Como visto no &lt;a href="http://javaimediato.blogspot.com/2008/02/tipos-de-variveis-tipos-primitivos.html"&gt;Post 11&lt;/a&gt;, os tipos primitivos são:&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;* char&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="color: rgb(0, 102, 0);"&gt;&lt;span style="font-size:85%;"&gt;* byte&lt;/span&gt;&lt;/li&gt;&lt;li style="color: rgb(0, 102, 0);"&gt;&lt;span style="font-size:85%;"&gt;* short&lt;/span&gt;&lt;/li&gt;&lt;li style="color: rgb(0, 102, 0);"&gt;&lt;span style="font-size:85%;"&gt;* int&lt;/span&gt;&lt;/li&gt;&lt;li style="color: rgb(0, 102, 0);"&gt;&lt;span style="font-size:85%;"&gt;* long&lt;/span&gt;&lt;/li&gt;&lt;li style="color: rgb(0, 102, 0);"&gt;&lt;span style="font-size:85%;"&gt;* float&lt;/span&gt;&lt;/li&gt;&lt;li style="color: rgb(0, 102, 0);"&gt;&lt;span style="font-size:85%;"&gt;* double&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(0, 102, 0);font-size:85%;" &gt;* boolean&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="color: rgb(0, 102, 0);font-size:85%;" &gt;Desde já um método pode retornar qualquer um desses tipos de acordo com sua finalidade. Observe este método que calcula a soma de 5 + 10:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;pre&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/span&gt; somar(){&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;   return&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;5&lt;/span&gt; + &lt;span style="color: rgb(255, 0, 0);"&gt;10&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;}&lt;/blockquote&gt;&lt;/pre&gt;&lt;span style="color: rgb(0, 102, 0);font-size:85%;" &gt;Note que a soma 5+10 retorna um número inteiro: 15. Logo, não seria viável, por exemplo, definir void como tipo de retorno do método somar() . Isto causaria o seguinte erro de compilação:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Exception in thread "main" java.lang.Error: Unresolved compilation problem: &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;    Void methods cannot return a value&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 102, 0);font-size:85%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 102, 0);font-size:85%;" &gt;&lt;br /&gt;Observe agora o método a seguir. Ele retorna um valor do tipo &lt;span style="font-weight: bold;"&gt;boolean&lt;/span&gt;:&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;boolean&lt;/b&gt;&lt;/span&gt; retornarVerdadeiro(){&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;   return&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;true&lt;/b&gt;&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;}&lt;/blockquote&gt;&lt;/pre&gt;&lt;span style="color: rgb(0, 102, 0);font-size:85%;" &gt;Qualquer outro valor retornado no método retornarVerdadeiro() que não seja do tipo boolean causará um erro de compilação, como no exemplo abaixo:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;pre&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;boolean&lt;/b&gt;&lt;/span&gt; retornarVerdadeiro(){&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;   return&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;30606f&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;}&lt;/blockquote&gt;&lt;/pre&gt;&lt;span style="color: rgb(0, 102, 0);font-size:85%;" &gt;O seguinte erro de compilação será acusado:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Exception in thread "main" java.lang.Error: Unresolved compilation problem: &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;    Type mismatch: cannot convert from float to boolean&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 102, 0);font-size:85%;" &gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 102, 0);font-size:85%;" &gt;&lt;span style="font-weight: bold;"&gt;Retornando Tipos de Referência&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);font-size:85%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 102, 0);font-size:85%;" &gt;Vimos no &lt;a href="http://javaimediato.blogspot.com/2008/03/12-tipos-de-variveis-tipos-de-referncia.html"&gt;Post 12&lt;/a&gt; que variáveis do tipo referência referenciam objetos, e é justamente um objeto que um método deve retornar caso seu tipo de retorno seja um tipo referência. Porém, o tipo de retorno especificado na declaração do método deve ser o tipo exato do objeto que o método deve retornar (ou subclasses do tipo informado. Estudaremos este detalhe em Posts posteriores).&lt;br /&gt;&lt;br /&gt;Dada uma classe Pessoa:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;pre&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;class&lt;/b&gt;&lt;/span&gt; Pessoa{&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;   //atributos&lt;/span&gt;&lt;br /&gt; String nome;&lt;br /&gt; String idade;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;   //métodos&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;  public&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;void&lt;/b&gt;&lt;/span&gt; imprimirNome(){&lt;br /&gt;    System.out.println(&lt;span style="color: rgb(0, 0, 255);"&gt;"NOME: "&lt;/span&gt;+nome);&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;}&lt;/blockquote&gt;&lt;/pre&gt;&lt;span style="color: rgb(0, 102, 0);font-size:85%;" &gt;&lt;br /&gt;Vamos declarar em uma classe qualquer o seguinte método:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;pre&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; Pessoa retornarPessoa(){&lt;br /&gt;&lt;br /&gt; Pessoa p = &lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt; Pessoa();&lt;br /&gt; p.nome = &lt;span style="color: rgb(0, 0, 255);"&gt;"ANDRÉ"&lt;/span&gt;;&lt;br /&gt; p.idade = &lt;span style="color: rgb(255, 0, 0);"&gt;23&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;  return&lt;/b&gt;&lt;/span&gt; p;&lt;br /&gt;&lt;br /&gt;}&lt;/blockquote&gt;&lt;/pre&gt;&lt;span style="color: rgb(0, 102, 0);font-size:85%;" &gt;Este método está declarado corretamente e compilará sem erros.  Note que o tipo de retorno de retorno é Pessoa, classe que criamos anteriormente. Lembre-se, um tipo de referência é uma classe.&lt;br /&gt;&lt;br /&gt;O seguinte método também é válido:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;pre&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; String retornarString(){&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;   return&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;"Uma string qualquer"&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;}&lt;/blockquote&gt;&lt;/pre&gt;&lt;span style="color: rgb(0, 102, 0);font-size:85%;" &gt;String também é um tipo, e  &lt;/span&gt;&lt;span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;"Uma string qualquer"&lt;/span&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 102, 0);font-size:85%;" &gt;é um objeto do tipo String. Mas, por favor, não se aborreça com este detalhe agora, pois estudaremos este detalhe em Posts Posteriores. Você pode iniciar uma pesquisa sobre isto para adiantar seus estudos. O seguinte método apresenta um erro. Tente identificá-lo antes de ler o comentário sobre ele:&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; Pessoa retornarPessoa(){&lt;br /&gt;&lt;br /&gt; Pessoa p = &lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt; Pessoa();&lt;br /&gt; p.nome = &lt;span style="color: rgb(0, 0, 255);"&gt;"Juliana"&lt;/span&gt;;&lt;br /&gt; p.idade = &lt;span style="color: rgb(255, 0, 0);"&gt;27&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;  return&lt;/b&gt;&lt;/span&gt; Pessoa;&lt;br /&gt;&lt;br /&gt;}&lt;/blockquote&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);font-size:85%;" &gt;Se você apontou que o erro está no momento do retorno, você está correto(a). O tipo de retorno deve ser um OBJETO Pessoa, e não a CLASSE Pessoa. Neste caso deveríamos retornar o objeto p para satisfazer o tipo de retorno exigido no método.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 102, 0);font-size:85%;" &gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 102, 0);font-size:85%;" &gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;Bem, encerramos por aqui a primeira parte do tópico Entendendo métodos.&lt;br /&gt;&lt;br /&gt;Um abraço e até a próxima&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4634980943732216641-1927890662053502068?l=javaimediato.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/JavaImediato-SeuTutorialJava/~3/6y1adidlMi4/14-entendendo-mtodos-parte-1-de-3.html</link><author>noreply@blogger.com (andrehbl)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://javaimediato.blogspot.com/2008/03/14-entendendo-mtodos-parte-1-de-3.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4634980943732216641.post-3843696069678158787</guid><pubDate>Fri, 07 Mar 2008 01:38:00 +0000</pubDate><atom:updated>2008-05-01T16:57:17.642-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">comment</category><category domain="http://www.blogger.com/atom/ns#">comentário</category><title>[13] Comentários em Java</title><description>&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;Neste Post vamos aprender a como fazer comentários na linguagem Java. Um comentário nada mais é do que um trecho no seu código que será ignorado pelo compilador. Você pode escrever comentários com diversas finalidades, como:&lt;br /&gt;&lt;br /&gt;* Explicar trecho(s) de código&lt;br /&gt;* Ignorar uma determinada linha de código&lt;br /&gt;* Ignorar um bloco de código&lt;br /&gt;* Escrever cabeçalhos de classes&lt;br /&gt;* entre outros&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);font-size:85%;" &gt;Comentário de linha (//)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;O comentário de linha faz com que tudo a direita do símbolo "&lt;span style="color: rgb(153, 153, 0);"&gt;//&lt;/span&gt;" seja ignorado pelo compilador.&lt;br /&gt;Por exemplo:&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;public static void main(String[] args) {&lt;/span&gt; &lt;span style="color: rgb(153, 153, 0);"&gt;&lt;br /&gt;  //System.out.println("Java imediato");&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;}&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Este programa não imprimirá a frase "Java imediato", pois a linha de comando System.out.println("Java imediato"); está sendo ignorada pelo compilador.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Observe um outro exemplo:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;public static void main(String[] args) {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt; System.out.println("Java");&lt;/span&gt; &lt;span style="color: rgb(153, 153, 0);"&gt;//System.out.println("imediato");&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;}&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A saída deste programa será:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;Java&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Também podemos utilizar o comentário simples para escrever curtas observações:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;blockquote style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(153, 153, 0);"&gt;//classe Player&lt;/span&gt;&lt;br /&gt;public class Player{&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 153, 0);"&gt; //atributos&lt;/span&gt;&lt;br /&gt;int id;&lt;br /&gt;String name;&lt;br /&gt;String IP;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 153, 0);"&gt; //métodos&lt;/span&gt;&lt;br /&gt;public void conectar(){&lt;br /&gt; &lt;span style="color: rgb(153, 153, 0);"&gt;//implementar este método&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;}&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);font-size:85%;" &gt;Comentário de bloco (/*  */)&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);font-size:85%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;O comentário de bloco permite que mais de uma linha sejam comentadas de uma só vez. Para isto abrimos o&lt;/span&gt; comentário de bloco com o símbolo "&lt;span style="color: rgb(153, 153, 0);"&gt;/*&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;" e definimos o fim do comentário usando o símbolo "&lt;/span&gt;&lt;span style="color: rgb(153, 153, 0);"&gt;*/&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;". Observe este exemplo de uso de comentário composto:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 153, 0);"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="color: rgb(153, 153, 0);"&gt;/*&lt;/span&gt; &lt;span style="color: rgb(153, 153, 0);"&gt; Classe Player&lt;/span&gt; &lt;span style="color: rgb(153, 153, 0);"&gt; Esta classe tem a finalidade de permitir que um jogador se conecte a &lt;/span&gt; &lt;span style="color: rgb(153, 153, 0);"&gt; um determinado servidor&lt;/span&gt; &lt;span style="color: rgb(153, 153, 0);"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;public class Player{&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 153, 0);"&gt; //atributos&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt; int id;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt; String name;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;String IP;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 153, 0);"&gt; //métodos&lt;/span&gt; &lt;span style="color: rgb(153, 153, 0);"&gt;/*&lt;/span&gt; &lt;span style="color: rgb(153, 153, 0);"&gt;  Este método ainda será implementado.&lt;/span&gt; &lt;span style="color: rgb(153, 153, 0);"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt; public void conectar(){&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(153, 153, 0);"&gt;//implementar este método&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt; }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;}&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt; &lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Como você deve ter percebido, não há problemas em haver mais de um tipo de comentário em uma classe.&lt;br /&gt;&lt;br /&gt;Bem, neste Post encerramos por aqui. Um abraço e até a próxima&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4634980943732216641-3843696069678158787?l=javaimediato.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/JavaImediato-SeuTutorialJava/~3/r_rt2CS-2KE/13-comentrios-em-java.html</link><author>noreply@blogger.com (andrehbl)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://javaimediato.blogspot.com/2008/03/13-comentrios-em-java.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4634980943732216641.post-5271966148601576076</guid><pubDate>Fri, 07 Mar 2008 01:37:00 +0000</pubDate><atom:updated>2008-12-10T14:19:36.445-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">tipo de referência</category><category domain="http://www.blogger.com/atom/ns#">NullPointerException</category><category domain="http://www.blogger.com/atom/ns#">variable initialized</category><category domain="http://www.blogger.com/atom/ns#">Reference types</category><title>[12] Tipos de variáveis: tipos de referência</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_OLi0EWdXe-4/SAlSw19AdbI/AAAAAAAAAJ8/eDkXcrUJko0/s1600-h/eclipseCTRLSPACE.PNG"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_OLi0EWdXe-4/SAlQBF9AdaI/AAAAAAAAAJ0/RNWZKO8DNlE/s1600-h/EXCLAMACAO.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;Os tipos de referência se diferem dos tipos primitivos porque os tipos primitivos armazenam valores, e os tipos de referência &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);font-size:85%;" &gt;referenciam&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt; objetos.&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt; &lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;A declaração de uma variável local ou atributo de tipo de referência é semelhante ao de um tipo primitivo. Observe:&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;tipo&gt; &lt;nomedavariável&gt;&lt;tipo&gt; &lt;nomedavariável&gt;&lt;tipo&gt; &lt;nomedavariavel&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;&lt;br /&gt;      TIPO&lt;/span&gt; &lt;span style="color: rgb(255, 102, 0);"&gt;nomeDaVariavel&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/nomedavariavel&gt;&lt;/tipo&gt;&lt;/nomedavariável&gt;&lt;/tipo&gt;&lt;tipo&gt;&lt;nomedavariável&gt;&lt;tipo&gt;&lt;nomedavariável&gt;&lt;/nomedavariável&gt;&lt;/tipo&gt;&lt;/nomedavariável&gt;&lt;/tipo&gt;&lt;/nomedavariável&gt;&lt;/tipo&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_OLi0EWdXe-4/SAlQBF9AdaI/AAAAAAAAAJ0/RNWZKO8DNlE/s1600-h/EXCLAMACAO.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_OLi0EWdXe-4/SAlQBF9AdaI/AAAAAAAAAJ0/RNWZKO8DNlE/s320/EXCLAMACAO.png" alt="" id="BLOGGER_PHOTO_ID_5190768025229358498" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);font-size:85%;" &gt;&lt;br /&gt;&lt;br /&gt;Aos poucos vamos migrando nosso vocabulário, desde já daqui por diante vamos nos adaptar a outra palavra: identificador. Em vez de "nome de um atributo" ou "nome de uma classe", de agora em diante chamaremos "identificador de um atributo" e "identificador de uma classe". &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;tipo style="color: rgb(0, 51, 0);"&gt;&lt;nomedavariável&gt;&lt;tipo&gt;&lt;nomedavariável&gt;&lt;tipo&gt;&lt;nomedavariável&gt;&lt;br /&gt;&lt;/nomedavariável&gt;&lt;/tipo&gt;&lt;/nomedavariável&gt;&lt;/tipo&gt;&lt;/nomedavariável&gt;&lt;/tipo&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;tipo style="color: rgb(0, 51, 0);"&gt;&lt;nomedavariável&gt;&lt;tipo&gt;&lt;nomedavariável&gt;&lt;tipo&gt;&lt;nomedavariável&gt;&lt;br /&gt;Porém, em vez de o tipo ser algo como &lt;span style="font-weight: bold;"&gt;int&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;float&lt;/span&gt; ou &lt;span style="font-weight: bold;"&gt;char&lt;/span&gt;, por exemplo, será uma classe - em Posts posteriores veremos que tipos de referência pode referenciar algo mais além do que uma classe comum.&lt;/nomedavariável&gt;&lt;/tipo&gt;&lt;/nomedavariável&gt;&lt;/tipo&gt;&lt;/nomedavariável&gt;&lt;/tipo&gt; &lt;tipo style="color: rgb(0, 51, 0);"&gt;&lt;nomedavariável&gt;&lt;tipo&gt;&lt;nomedavariável&gt;&lt;tipo&gt;&lt;nomedavariável&gt;Observe esta linha de código:&lt;/nomedavariável&gt;&lt;/tipo&gt;&lt;/nomedavariável&gt;&lt;/tipo&gt;&lt;/nomedavariável&gt;&lt;/tipo&gt;&lt;br /&gt;&lt;tipo&gt;&lt;nomedavariável&gt;&lt;tipo&gt;&lt;nomedavariável&gt;&lt;tipo&gt;&lt;nomedavariável&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;blockquote&gt;Scanner entrada;&lt;/blockquote&gt;&lt;/span&gt;&lt;/nomedavariável&gt;&lt;/tipo&gt;&lt;/nomedavariável&gt;&lt;/tipo&gt;&lt;/nomedavariável&gt;&lt;/tipo&gt;&lt;/span&gt; &lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;tipo&gt;&lt;nomedavariável&gt;&lt;tipo&gt;&lt;nomedavariável&gt;&lt;tipo&gt;&lt;nomedavariável&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;No &lt;a href="http://javaimediato.blogspot.com/2008/02/lendo-dados-partir-do-teclado-com.html"&gt;Post 9&lt;/a&gt; nós tinhamos então uma variável de referência do tipo Scanner. Scanner é uma classe e "entrada" é o identificador da variável.&lt;/span&gt;&lt;/nomedavariável&gt;&lt;/tipo&gt;&lt;/nomedavariável&gt;&lt;/tipo&gt;&lt;/nomedavariável&gt;&lt;/tipo&gt; &lt;/span&gt; &lt;span style="font-size:85%;"&gt;&lt;tipo style="color: rgb(0, 51, 0);"&gt;&lt;nomedavariável&gt;&lt;tipo&gt;&lt;nomedavariável&gt;&lt;tipo&gt;&lt;nomedavariável&gt;Neste caso, significa dizer que "entrada" está pronto para referenciar um objeto do tipo Scanner, porém até agora não o faz. Caso não se lembre, para começarmos a utilizar um objeto do tipo Scanner codificamos o comando:&lt;/nomedavariável&gt;&lt;/tipo&gt;&lt;/nomedavariável&gt;&lt;/tipo&gt;&lt;/nomedavariável&gt;&lt;/tipo&gt;&lt;br /&gt;&lt;br /&gt;&lt;tipo&gt;&lt;nomedavariável&gt;&lt;tipo&gt;&lt;nomedavariável&gt;&lt;tipo&gt;&lt;nomedavariável&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;blockquote&gt;Scanner entrada = new Scanner(System.in);&lt;/blockquote&gt;&lt;/span&gt;&lt;/nomedavariável&gt;&lt;/tipo&gt;&lt;/nomedavariável&gt;&lt;/tipo&gt;&lt;/nomedavariável&gt;&lt;/tipo&gt;&lt;br /&gt;&lt;tipo style="color: rgb(0, 51, 0);"&gt;&lt;nomedavariável&gt;&lt;tipo&gt;&lt;nomedavariável&gt;&lt;tipo&gt;&lt;nomedavariável&gt;Esta linha faz com que "entrada" referencie um objeto do tipo Scanner. Um objeto Scanner, assim como qualquer outro objeto, é criado efetivamente quando usamos a palavra-chave &lt;span style="font-weight: bold;"&gt;new&lt;/span&gt; seguida do construtor do tipo do objeto - &lt;span style="font-style: italic;"&gt;aprenderemos sobre construtores em Posts posteriores&lt;/span&gt;.&lt;/nomedavariável&gt;&lt;/tipo&gt;&lt;/nomedavariável&gt;&lt;/tipo&gt;&lt;/nomedavariável&gt;&lt;/tipo&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt; &lt;span style="font-size:85%;"&gt;&lt;tipo style="color: rgb(0, 51, 0);"&gt;&lt;nomedavariável&gt;&lt;tipo&gt;&lt;nomedavariável&gt;&lt;tipo&gt;&lt;nomedavariável&gt;Logo, podemos imaginar que a nossa linha de comando resultou no seguinte esquema:&lt;/nomedavariável&gt;&lt;/tipo&gt;&lt;/nomedavariável&gt;&lt;/tipo&gt;&lt;/nomedavariável&gt;&lt;/tipo&gt;&lt;tipo&gt;&lt;nomedavariável&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_OLi0EWdXe-4/R_kUtVJdhJI/AAAAAAAAAJM/m_fIXzq6V_k/s1600-h/esquema1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_OLi0EWdXe-4/R_kUtVJdhJI/AAAAAAAAAJM/m_fIXzq6V_k/s320/esquema1.png" alt="" id="BLOGGER_PHOTO_ID_5186199214897333394" border="0" /&gt;&lt;/a&gt;&lt;/nomedavariável&gt;&lt;/tipo&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;tipo&gt;&lt;nomedavariável&gt;&lt;tipo&gt;&lt;nomedavariável&gt;&lt;tipo&gt;&lt;nomedavariável&gt;&lt;graph&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Vejamos este trecho de código:&lt;/span&gt;&lt;br /&gt;&lt;/graph&gt;&lt;/nomedavariável&gt;&lt;/tipo&gt;&lt;/nomedavariável&gt;&lt;/tipo&gt;&lt;/nomedavariável&gt;&lt;/tipo&gt;&lt;/span&gt;&lt;ol style="color: rgb(0, 0, 153);"&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Scanner e1;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;e1 = new Scanner(System.in);&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;e1 = new Scanner(System.in);&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;A representação gráfica deste código resultaria em algo como:&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_OLi0EWdXe-4/SAlKXl9AdWI/AAAAAAAAAJU/Iy552RGDpx8/s1600-h/esquema2.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_OLi0EWdXe-4/SAlKXl9AdWI/AAAAAAAAAJU/Iy552RGDpx8/s320/esquema2.PNG" alt="" id="BLOGGER_PHOTO_ID_5190761814706648418" border="0" /&gt;&lt;/a&gt;&lt;graph style="color: rgb(0, 51, 0);"&gt;Uma variável de referência referencia apenas 1 único objeto por vez, assim como as variáveis de tipos primitivos referenciam apenas 1 valor por vez. No caso da figura anterior, o primeiro objeto Scanner criado era referenciado pela variável "e1", ou seja, a única maneira de se acessar o primeiro objeto Scanner seria através da variável "e1". Como "e1" só pode referenciar um objeto Scanner por vez e na linha 3 ele passa a referenciar outro objeto, logo o primeiro objeto Scanner é perdido na memória e estará disponível para ser coletado pelo &lt;a href="http://pt.wikipedia.org/wiki/Coletor_de_lixo"&gt;Garbage Collector&lt;/a&gt; - ou GC - da JVM.&lt;/graph&gt;&lt;br /&gt;&lt;graph style="color: rgb(0, 51, 0);"&gt;Também é possível que mais de uma variável de referência referencie um mesmo objeto. Vamos antes criar uma classe Pessoa e exemplificar como um único objeto pode ser acessado por várias variáveis de referência:&lt;/graph&gt;&lt;br /&gt;&lt;/span&gt; &lt;blockquote&gt;&lt;span style="font-size:85%;"&gt;&lt;graph&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;public class Pessoa{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;String nome;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;int idade;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;float peso;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;float altura;&lt;/span&gt;&lt;/graph&gt;&lt;graph style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;&lt;br /&gt;public static void main(String[] args){&lt;br /&gt;&lt;br /&gt;Pessoa p1 = new Pessoa();&lt;br /&gt;Pessoa p2 = p1;&lt;br /&gt;Pessoa p3 = p2;&lt;/graph&gt;&lt;/span&gt;  &lt;span style="font-size:85%;"&gt;&lt;graph style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;}&lt;/graph&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;graph style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;}&lt;/graph&gt;&lt;/span&gt;&lt;/blockquote&gt; &lt;span style="font-size:85%;"&gt;&lt;graph&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Quando o arquivo Pessoa.java for executado, o esquema gráfico do nosso código ficará da seguinte maneira:&lt;/span&gt;&lt;br /&gt;&lt;/graph&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_OLi0EWdXe-4/SAlPIF9AdZI/AAAAAAAAAJs/AT6DmT-g9_M/s1600-h/esquema3.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_OLi0EWdXe-4/SAlPIF9AdZI/AAAAAAAAAJs/AT6DmT-g9_M/s320/esquema3.PNG" alt="" id="BLOGGER_PHOTO_ID_5190767045976814994" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;graph&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Lembre-se, variáveis de referência armazenam simplesmente "referências a objetos", ou seja, se uma variável de referência referencia outra, então ambas referenciarão o mesmo objeto ou &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;null&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/graph&gt;&lt;br /&gt;&lt;graph&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;Referência null&lt;/span&gt;&lt;/graph&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;graph style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;Quando não queremos que uma variável de referência referencie um objeto, podemos fazer com que ela referencie null.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;null&lt;/span&gt; é uma palavra-chave para fazer com que uma variável de referência não referencie nenhum objeto.&lt;br /&gt;&lt;br /&gt;&lt;/graph&gt;&lt;/span&gt; &lt;span style="font-size:85%;"&gt;&lt;graph&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Observe o exemplo:&lt;/span&gt;  &lt;span style="color: rgb(0, 51, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/graph&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Pessoa pes = new Pessoa();&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);font-size:85%;" &gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);font-size:85%;" &gt;&lt;br /&gt;pes = null;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);font-size:85%;" &gt;  &lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);font-size:85%;" &gt;Resultado:&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_OLi0EWdXe-4/SAlORF9AdYI/AAAAAAAAAJk/EYSSEEr__lo/s1600-h/esquema4.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_OLi0EWdXe-4/SAlORF9AdYI/AAAAAAAAAJk/EYSSEEr__lo/s320/esquema4.PNG" alt="" id="BLOGGER_PHOTO_ID_5190766101084009858" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);font-size:85%;" &gt;&lt;span style="font-weight: bold;"&gt;Variáveis de referência locais&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;&lt;span&gt;&lt;br /&gt;Todos os exemplos de variáveis de referências citados anteriormente são declarados e imediatamente inicializados. Toda variável declarada precisa referenciar algo caso seja utilizada. No caso das variáveis de referências, deve referenciar ou o valor &lt;span style="font-weight: bold;"&gt;null&lt;/span&gt; ou um objeto. Por exemplo:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;public void metodoQualquer(){&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;   Pessoa p;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;Será compilado sem erros. Contudo, por enquanto, a variável "p" está inutilizada. Observe o exemplo a seguir:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;public void metodoQualquer(){&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;   Pessoa p;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;   p.nome = "Pollyana";&lt;br /&gt;&lt;br /&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;&lt;span&gt;&lt;br /&gt;A variável "p" está sendo utilizada. Por estar sendo utilizada sem referenciar algum valor, o compilador acusará o seguinte erro:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;The local variable p may not have been initialized&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;&lt;span&gt;O próximo exemplo não possui erros de compilação:&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;public void metodoQualquer(){&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;   Pessoa p = &lt;span style="font-weight: bold;"&gt;null&lt;/span&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;   p.nome = "Pollyana";&lt;br /&gt;&lt;br /&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;&lt;span&gt;As variáveis de referência que são atributos de uma classe são inicializadas automaticamente com null, caso você as programar para receberem um objeto. Aprenderemos sobre inicialização de atributos em Posts posteriores.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);font-size:85%;" &gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;graph&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;&lt;span style="font-weight: bold;"&gt;NullPointerException&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Se você ainda se deparou com esta exceção, sua hora chegará. Uma exceção NullPointerException ocorrerá quando você tentar acessar um objeto que não existe - frequentemente fazemos isso porque pensamos que tal objeto existe.&lt;/span&gt;  &lt;span style="color: rgb(0, 51, 0);"&gt;Em IDEs como Eclipse, por exemplo, ao pressionar Ctrl+Espaço após o operador ponto"." de uma variável, automaticamente se abrirá uma caixa de seleção com atributos e métodos pertencentes ao tipo da classe em questão, como na imagem abaixo:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/graph&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_OLi0EWdXe-4/SAlSw19AdbI/AAAAAAAAAJ8/eDkXcrUJko0/s1600-h/eclipseCTRLSPACE.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_OLi0EWdXe-4/SAlSw19AdbI/AAAAAAAAAJ8/eDkXcrUJko0/s320/eclipseCTRLSPACE.PNG" alt="" id="BLOGGER_PHOTO_ID_5190771044591367602" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;graph&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;imagem do="" eclipse="" com="" space=""&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Isto muita vezes nos induz a acessar métodos, por exemplo, de objetos que não existem. Por exemplo:&lt;/span&gt;  &lt;span style="color: rgb(0, 51, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/imagem&gt;&lt;/graph&gt;&lt;graph style="color: rgb(0, 0, 153);"&gt;&lt;imagem do="" eclipse="" com="" space=""&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/imagem&gt;&lt;/graph&gt;&lt;/span&gt;&lt;ol style="color: rgb(0, 0, 153);"&gt;&lt;li style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-size:85%;"&gt;&lt;graph&gt;&lt;imagem do="" eclipse="" com="" space=""&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Pessoa p;&lt;/span&gt;&lt;/imagem&gt;&lt;/graph&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;graph&gt;&lt;imagem do="" eclipse="" com="" space=""&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;p.nome = "André";&lt;/span&gt;  &lt;/imagem&gt;&lt;/graph&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;graph&gt;&lt;imagem do="" eclipse="" com="" space=""&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;Seria como se na linha 1, você dissesse ao compilador: "&lt;/span&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;Compilador, estou declarando uma variável do tipo Pessoa, e ela se chamará p&lt;/span&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;", e na linha 2 você dissesse: "&lt;/span&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;Compilador, quero que o atributo "nome" &lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 102, 0);"&gt;do objeto que minha variável p referencia &lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;tenha seu valor alterado para "André" &lt;/span&gt;".&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Logo, se este trecho de código for executado, uma exceção NullPointerException será lançada:&lt;/span&gt;&lt;span style="font-size:85%;"&gt;  &lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;java.lang.NullPointerException&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;O seguinte trecho também gera exceção de NullPointerException:&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);font-size:85%;" &gt;Scanner entrada = new Scanner(System.in);&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);font-size:85%;" &gt; &lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);font-size:85%;" &gt;Scanner entrada2 = entrada;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);font-size:85%;" &gt; &lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);font-size:85%;" &gt;entrada = null;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);font-size:85%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);font-size:85%;" &gt;entrada.nextInt();&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);font-size:85%;" &gt;  &lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;A variável "entrada" referenciava um objeto, logo em seguida a variável "entrada2" passou a referenciar o objeto de "entrada". Na linha 3, "entrada" passou a ter referência para null, e finalmente na linha 4 tentou-se acessar o método nextInt() através da variável de referência "entrada", que não mais referencia qualquer objeto.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 102, 0);font-size:85%;" &gt;Analisemos o nome da exceção: NullPointerException. Sua tradução significa algo como: "Exceção de ponteiro nulo". Isto significa dizer que tentou-se acessar algo de uma referência de objeto que não existe.&lt;br /&gt;&lt;br /&gt;Bem, ficamos por aqui. Mais um abraço e bons estudos!&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/imagem&gt;&lt;/graph&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4634980943732216641-5271966148601576076?l=javaimediato.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/JavaImediato-SeuTutorialJava/~3/7VW3BoaPfz0/12-tipos-de-variveis-tipos-de-referncia.html</link><author>noreply@blogger.com (andrehbl)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_OLi0EWdXe-4/SAlQBF9AdaI/AAAAAAAAAJ0/RNWZKO8DNlE/s72-c/EXCLAMACAO.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://javaimediato.blogspot.com/2008/03/12-tipos-de-variveis-tipos-de-referncia.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4634980943732216641.post-8058546282775928149</guid><pubDate>Fri, 29 Feb 2008 03:09:00 +0000</pubDate><atom:updated>2008-12-10T14:19:36.561-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">tipos predefinidos</category><category domain="http://www.blogger.com/atom/ns#">tipos primitivos</category><category domain="http://www.blogger.com/atom/ns#">primitive types</category><title>[11] Tipos de variáveis: tipos primitivos</title><description>&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Vamos aprender um pouco mais sobre os tipos de variáveis existentes no Java: tipos primitivos e tipos de referência. Porém, neste Post daremos ênfase aos tipos primitivos.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);font-size:85%;" &gt;Variáveis de tipos primitivos&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Uma vez que uma variável é definida como um tipo primitivo, seu tipo não pode ser alterado.  Isso implica dizer que ao declarar uma variável de tipo primitivo como a variável "velocidade" abaixo como tipo &lt;span style="font-weight: bold;"&gt;int&lt;/span&gt;, ela não pode, dentro do mesmo escopo, ser redefinida para o tipo &lt;span style="font-weight: bold;"&gt;float&lt;/span&gt;, por exemplo:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-weight: bold;"&gt;int&lt;/span&gt; velocidade;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-weight: bold;"&gt;float&lt;/span&gt; velocidade;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Cada variável de um tipo primitivo armazena apenas um valor por vez do seu tipo. Os tipos primitivos da linguagem Java são: &lt;span style="font-weight: bold;"&gt;char&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;byte&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;short&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;int&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;long&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;float&lt;/span&gt;,&lt;span style="font-weight: bold;"&gt; double &lt;/span&gt;e &lt;span style="font-weight: bold;"&gt;boolean&lt;/span&gt;. Veremos a seguir características e um exemplo de uso para cada tipo primitivo:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;_______________________________________________________&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);font-size:85%;" &gt;char&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;O tipo &lt;span style="font-weight: bold;"&gt;char&lt;/span&gt; é utilizado para armazenar em uma variável caracteres individuais, tais como: 'A', 'G' ou 'U'. Cada caracter a ser atribuído a uma variável do tipo &lt;span style="font-weight: bold;"&gt;char&lt;/span&gt; deve ser escrito entre aspas simples:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-weight: bold;"&gt;char&lt;/span&gt; letra = 'A';&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;System.out.println("LETRA INICIAL: " + letra);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;letra = 'E';&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;System.out.println("NOVA LETRA: " + letra);&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Certamente os valores a serem exibidos após a execução do código acima são:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;LETRA INICIAL: A&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;NOVA LETRA: E&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Uma variável do tipo &lt;span style="font-weight: bold;"&gt;char&lt;/span&gt; também pode receber entre aspas simples um valor &lt;/span&gt;&lt;a style="color: rgb(0, 51, 0);" href="http://pt.wikipedia.org/wiki/Unicode"&gt;Unicode&lt;/a&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-weight: bold;"&gt;char&lt;/span&gt; caracterUnicode = '\u0041';&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;System.out.println("Caracter unicode: " + caracterUnicode);&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;E será exibido na tela:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;Caracter unicode: A&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Pois o código 0041 na &lt;/span&gt;&lt;a style="color: rgb(0, 51, 0);" href="http://unicode.coeurlumiere.com/"&gt;tabela unicode&lt;/a&gt;&lt;span style="color: rgb(0, 51, 0);"&gt; pertence ao caracter 'A', assim como o código 0030 pertence ao número zero e o código 0032 pertence ao número 2.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;_______________________________________________________&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);font-size:85%;" &gt;byte&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;O tipo &lt;span style="font-weight: bold;"&gt;byte&lt;/span&gt; armazena um valor inteiro de -128 a 127, inclusive:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-weight: bold;"&gt;byte&lt;/span&gt; pequenoNumero = 30;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-weight: bold;"&gt;byte&lt;/span&gt; outroNumero = 50;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-weight: bold;"&gt;byte&lt;/span&gt; soma = pequenoNumero + outroNumero;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;System.out.println("Soma: " + soma);&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;O valor exibido no console é:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;Soma: 80&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;_______________________________________________________&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);font-size:85%;" &gt;short&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;O tipo &lt;span style="font-weight: bold;"&gt;short&lt;/span&gt; armazena um valor de -32.768 a 32.767, inclusive:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-weight: bold;"&gt;short&lt;/span&gt; valor1 = -1000;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-weight: bold;"&gt;short&lt;/span&gt; valor2 = 20600;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-weight: bold;"&gt;short&lt;/span&gt; valor3 = valor2 - valor1;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;System.out.println("Valor 3: " + valor3);&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Saída:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;Valor 3: 19600&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;_______________________________________________________&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);font-size:85%;" &gt;int&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;O tipo primitivo &lt;span style="font-weight: bold;"&gt;int&lt;/span&gt; armazena um &lt;a href="http://pt.wikipedia.org/wiki/N%C3%BAmero_inteiro"&gt;valor inteiro&lt;/a&gt; entre -2.147.483.648 e 2.147.483.647, inclusive:&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-weight: bold;"&gt;int&lt;/span&gt; idade = 0;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-weight: bold;"&gt;int&lt;/span&gt; anoNascimento = 2009;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-weight: bold;"&gt;int&lt;/span&gt; saldoNegativo = -3200;&lt;/span&gt;&lt;/blockquote&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;_______________________________________________________&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);font-size:85%;" &gt;long&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;O tipo primitivo &lt;span style="font-weight: bold;"&gt;long&lt;/span&gt; armazena um valor inteiro entre -9.223.372.036.854.775.808 e 9.223.372.036.854.775.807. Para deixar explícito que um valor deve ser interpretado como &lt;span style="font-weight: bold;"&gt;long&lt;/span&gt;, é comum que se digite a letra L, minúscula ou maiúscula:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-weight: bold;"&gt;long&lt;/span&gt; numeroGrande =  1300333030;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-weight: bold;"&gt;long&lt;/span&gt; outroNumeroGrande =  1300333030l;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-weight: bold;"&gt;long&lt;/span&gt; maisUmNumeroGrande =  1300333030L;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Todas as variáveis declaradas acima têm o mesmo valor e são do tipo &lt;span style="font-weight: bold;"&gt;long&lt;/span&gt;, porém note que as variáveis "outroNumeroGrande" e "maisUmNumeroGrande" possuem as letras l e L, respectivamente, ao final dos valores atribuídos. O uso da letra L é útil apenas para diferenciar que o valor em questão será armazenado em uma variável do tipo &lt;span style="font-weight: bold;"&gt;long&lt;/span&gt;, e não &lt;span style="font-weight: bold;"&gt;int&lt;/span&gt;, por exemplo. O valor não sofre quaisquer alterações após o uso da letra.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;_______________________________________________________&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);font-size:85%;" &gt;float&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;Uma variável do tipo primitivo &lt;a href="http://pt.wikipedia.org/wiki/V%C3%ADrgula_flutuante"&gt;&lt;span style="font-weight: bold;"&gt;float&lt;/span&gt;&lt;/a&gt; armazena um &lt;a href="http://pt.wikipedia.org/wiki/N%C3%BAmero_real"&gt;número real &lt;/a&gt;de 32 bits segundo o padrão &lt;a href="http://en.wikipedia.org/wiki/IEEE_floating-point_standard"&gt;IEEE 754&lt;/a&gt;. Para deixar explícito que o valor em questão é do tipo &lt;span style="font-weight: bold;"&gt;float&lt;/span&gt;, usa-se a letra F ao final do valor.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;float&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt; altura = 1.87f;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);font-size:85%;" &gt;&lt;span style="font-weight: bold;"&gt;float&lt;/span&gt; peso = 71.5F;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);font-size:85%;" &gt;&lt;span style="font-weight: bold;"&gt;float&lt;/span&gt; juros = 1.5;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);font-size:85%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);font-size:85%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;O valor não sofre quaisquer alterações após o uso da letra.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;_______________________________________________________&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);font-size:85%;" &gt;double&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;O tipo de dado &lt;span style="font-weight: bold;"&gt;double&lt;/span&gt; é ponto-flutuante de dupla precisão de 64 bits segundo o padrão &lt;/span&gt;&lt;a style="color: rgb(0, 51, 0);" href="http://en.wikipedia.org/wiki/IEEE_floating-point_standard"&gt;IEEE 754&lt;/a&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-weight: bold;"&gt;double&lt;/span&gt; superValor = 121313.4;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;System.out.println("Super valor: " + superValor);&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;O valor exibido é:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;Super valor: 121313.4&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;_______________________________________________________&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);font-size:85%;" &gt;boolean&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;O tipo &lt;span style="font-weight: bold;"&gt;boolean&lt;/span&gt; - &lt;a href="http://pt.wikipedia.org/wiki/Booleano"&gt;ou booleano&lt;/a&gt; - só pode receber dois tipos de valores: &lt;span style="font-weight: bold;"&gt;true &lt;/span&gt;ou &lt;span style="font-weight: bold;"&gt;false&lt;/span&gt;:&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;boolean&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt; isOpened = &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;true&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;System.out.println("IS OPENED (antes): "+ isOpened);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;boolean &lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;flag = &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;isOpened = &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;System.out.println("IS OPENED (depois): "+ isOpened);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;System.out.println("flag: "+ flag);&lt;/span&gt;&lt;/blockquote&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;A saída exibida será:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;IS OPENED (antes): true&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;IS OPENED (depois): false&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;flag: false&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;_______________________________________________________&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0); font-weight: bold;"&gt;Cuidado ao tentar atribuir um valor maior do que um tipo de variável pode suportar, como por exemplo:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-weight: bold;"&gt;byte&lt;/span&gt; valorPequeno = 12340;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-weight: bold;"&gt;int&lt;/span&gt; valorNaoLong = 2980928320213L;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;12340&lt;/span&gt; é considerado como valor inteiro, desde já não é possível atribuir tal valor a uma variável do tipo byte, pois o tipo byte suporta valores inteiros entre &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;-128 a 127, apenas.&lt;br /&gt;&lt;br /&gt;E caso o valor &lt;/span&gt;&lt;span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;2980928320213 &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt; inão seja seguido pela letra L, o compilador tentará, por padrão, entendê-lo como um valor do tipo int, e como os valores int devem estar entre &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;-2147483648 e 2147483647, o valor &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;2980928320213 &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;excede esse limite, a compilação falhará e dará a seguinte mensagem:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;The literal 2980928320213 of type int is out of range&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0); font-weight: bold;"&gt;Cuidado também ao tentar atribuir valores que são incompatíveis ao tipo em questão:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-weight: bold;"&gt;char&lt;/span&gt; letra = 1243f;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-weight: bold;"&gt;int&lt;/span&gt; number = 1243f;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Estas atribuições causam erro de compilação e geram as seguintes mensagens:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;    Type mismatch: cannot convert from &lt;span style="font-weight: bold;"&gt;float&lt;/span&gt; to &lt;span style="font-weight: bold;"&gt;char&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;    Type mismatch: cannot convert from &lt;span style="font-weight: bold;"&gt;float&lt;/span&gt; to int&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a style="color: rgb(0, 51, 0);" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_OLi0EWdXe-4/R91E1BVldKI/AAAAAAAAAJE/VOqkMA473oU/s1600-h/EXCLAMACAO.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_OLi0EWdXe-4/R91E1BVldKI/AAAAAAAAAJE/VOqkMA473oU/s320/EXCLAMACAO.png" alt="" id="BLOGGER_PHOTO_ID_5178370824228664482" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;Os indicadores de tipos primitivos são palavras-chave, desde então você não pode criar identificadores com o mesmo nome que eles. Como, por exemplo, criar uma variável chamada "int" ou "float". Palavras-chave são palavras reservadas.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;Vale também ressaltar que os tipos primitivos também podem ser chamados de tipos predefinidos.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);font-size:85%;" &gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;Bem, neste Post ficamos por aqui. Na próxima postagem aprenderemos sobre os tipos de referência do Java. Um abraço e até logo.&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);font-size:85%;" &gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4634980943732216641-8058546282775928149?l=javaimediato.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/JavaImediato-SeuTutorialJava/~3/CmHvVQA1n1o/tipos-de-variveis-tipos-primitivos.html</link><author>noreply@blogger.com (andrehbl)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_OLi0EWdXe-4/R91E1BVldKI/AAAAAAAAAJE/VOqkMA473oU/s72-c/EXCLAMACAO.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://javaimediato.blogspot.com/2008/02/tipos-de-variveis-tipos-primitivos.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4634980943732216641.post-7426481806608032617</guid><pubDate>Wed, 13 Feb 2008 15:27:00 +0000</pubDate><atom:updated>2008-12-10T14:19:37.077-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">ponto-e-virgula</category><category domain="http://www.blogger.com/atom/ns#">bloco</category><category domain="http://www.blogger.com/atom/ns#">variáveis locais</category><category domain="http://www.blogger.com/atom/ns#">escopo</category><title>[10] Ponto-e-vírgula, escopo e variáveis locais</title><description>&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Neste Post vamos aperfeiçoar um pouco os nossos conhecimentos sobre o que vimos até o momento. Entenderemos o motivo do uso do símbolo ";" após a invocação de comandos, entenderemos também do que se trata um escopo e variáveis locais.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0); font-weight: bold;"&gt;PONTO-E-VÍRGULA (;)&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Cada comando deve ser finalizado com ponto-e-vírgula (;)&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;.  &lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Em Posts anteriores já trabalhamos com mais de um comando, por exemplo:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;System.out.println(" Primeiro comando ")&lt;span style="font-weight: bold;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;System.out.println(" Segundo comando ")&lt;span style="font-weight: bold;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;br /&gt;O mesmo acontece com a criação de objetos e chamadas a métodos - se você ainda não sabe, "println()" é  um método. Supondo que exista uma classe chamada Porta, onde seus métodos são abrir() e fechar(), veremos o uso de ponto-e-vírgula no final das chamadas:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-size:85%;" &gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="color: rgb(0, 0, 153);font-size:85%;" &gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Porta p = new Porta();&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;System.out.println("O método abrir() será chamado");&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;p.abrir();&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);font-size:85%;" &gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;S&lt;/span&gt;y&lt;span style="color: rgb(51, 51, 153);"&gt;stem.out.println("O método fechar() será chamado");&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;p.fechar();&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;E para que não reste mais dúvidas sobre o uso de ponto-e-vírgula, este símbolo também é usado na declaração de atributos:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;public class Porta{&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;boolean estaAberta;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;String tipoPorta;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;}&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0); font-weight: bold;"&gt;ESCOPO&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Um escopo delimita o "&lt;span style="font-weight: bold;"&gt;tempo de vida&lt;/span&gt;" de uma variável, seja ela &lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;de referência ou de um tipo primitivo. Esta delimitação é definida &lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;através dos símbolos "{" e "}", que são equivalentes às instruções &lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;"Begin" e "End", respectivamente, em linguagens como Pascal. O espaço delimitado pelos símbolos "{" e "}" é denominado &lt;span style="font-weight: bold;"&gt;bloco.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Observe a classe Livro abaixo:&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;public class Livro {&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  &lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;   String titulo;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;   &lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;   String autor;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;      int qtdPaginas;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  &lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Isso significa dizer que os atributos titulo, autor e qtdPaginas &lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;de um objeto do tipo Livro existirão enquanto o objeto existir, pois &lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;seu escopo está definido para toda a classe.&lt;/span&gt;  &lt;span style="color: rgb(0, 51, 0);"&gt;Observe o escopo do método escreverQuantidadePaginas() da classe abaixo:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;public class Livro {&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;   String titulo;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;   String autor;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;   int qtdPaginas;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;public void escreverQuantidadePaginas(){&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  &lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;   int quantidade = qtdPaginas;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;      System.out.println("QUANTIDADE DE PAGINAS: ");&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;      System.out.println(quantidade);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;span style="color: rgb(0, 51, 0);"&gt;O escopo da variável "quantidade", está limitado ao método escreverQuantidadePaginas(). Isso implica&lt;/span&gt; &lt;span style="color: rgb(0, 51, 0);"&gt;dizer que quando o método escreverQuantidadePaginas() for encerrado a variável "quantidade" já não&lt;/span&gt; &lt;span style="color: rgb(0, 51, 0);"&gt;mais p&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;oderá ser referenciada.&lt;br /&gt;&lt;br /&gt;Um ponto importante a se ressaltar é que "quantidade" estará acessível apenas&lt;/span&gt; &lt;span style="color: rgb(0, 51, 0);"&gt;dentro do método escreverQuantidadePaginas(). Porém, note que a variável "qtdPaginas" está sendo acessada&lt;/span&gt; &lt;span style="color: rgb(0, 51, 0);"&gt;de dentro do método escreverQuantidadePaginas(), isso é possível porque o escopo de "qtdPaginas" foi&lt;/span&gt; &lt;span style="color: rgb(0, 51, 0);"&gt;definido para toda a classe, e o método escreverQuantidadePaginas() pertence à classe. Desde já o atributo "qtdPaginas" &lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;pôde ser acessado através do método.&lt;/span&gt;  &lt;span style="color: rgb(0, 51, 0);"&gt;&lt;br /&gt;&lt;br /&gt;Para melhor compreensão vamos instanciar um objeto do tipo Livro:&lt;/span&gt;   &lt;span style="color: rgb(0, 51, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;public static void main(String[] args){&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;   Livro livro = new Livro();&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;}&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 51, 0);"&gt;Você pode livremente acessar os atributos do objeto livro como atribuir valores e exibí-los.&lt;/span&gt;  &lt;span style="color: rgb(0, 51, 0);"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;public static void main(String[] args){&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  &lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;&lt;br /&gt;    Livro livro = new Livro();&lt;br /&gt;    livro.autor = "André Leitão";&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;      livro.qtdPaginas = 100;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;      System.out.println("QUANTIDADE PÁGINAS: ");&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  &lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;    System.out.println(livro.qtdPaginas);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 51, 0);"&gt;Mas você não pode acessar a variável "quantidade", pois seu tempo de vida está delimitado pelo escopo&lt;/span&gt; &lt;span style="color: rgb(0, 51, 0);"&gt;do método escreverQuantidadePaginas(). Desde já seria um erro codificar:&lt;/span&gt;  &lt;/span&gt;&lt;ol style="color: rgb(0, 0, 153);"&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;public static void main(String[] args){&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;   Livro livro = new Livro();&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;   l&lt;span style="color: rgb(0, 0, 153);"&gt;ivro.qtdPaginas = 100;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;   livro.quantidade = 20;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;A funcionalidade da linha 4  insinua algo como:  "&lt;span style="color: rgb(51, 102, 255);"&gt;atribua o valor 10 à variável quantidade, que pertence ao objeto livro&lt;/span&gt;". E esta atribuição não será possível porque "quantidade" não será reconhecida como um atributo do objeto livro.&lt;br /&gt;&lt;br /&gt;Observe a figura abaixo:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_OLi0EWdXe-4/R8Hfol4xM1I/AAAAAAAAAI0/ecq-ChXEwnE/s1600-h/escopo.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_OLi0EWdXe-4/R8Hfol4xM1I/AAAAAAAAAI0/ecq-ChXEwnE/s320/escopo.png" alt="" id="BLOGGER_PHOTO_ID_5170659735656018770" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_OLi0EWdXe-4/R8Hi-l4xM2I/AAAAAAAAAI8/c2mMNgPINu0/s1600-h/INTERROGACAO.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_OLi0EWdXe-4/R8Hi-l4xM2I/AAAAAAAAAI8/c2mMNgPINu0/s320/INTERROGACAO.png" alt="" id="BLOGGER_PHOTO_ID_5170663412148024162" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;&lt;span style="color: rgb(0, 51, 0);"&gt;ATRIBUTOS SÃO VARIÁVEIS?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-weight: bold;"&gt;Atributos são variáveis, pois armazenam valores e estes valores podem ser alterados e/ou obtidos.&lt;/span&gt;  &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;A diferença básica entre um atributo e uma variável local é que o escopo de um atributo é delimitado pelo bloco de sua classe, e o escopo de uma variável local é delimitado por um outro bloco qualquer.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;VARIÁVEIS LOCAIS&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Uma variável local não pode ser acessada por toda a classe, apenas dentro do &lt;span style="font-weight: bold;"&gt;bloco&lt;/span&gt;  em que foi declarada. Por exemplo:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;ol style="color: rgb(0, 0, 153);"&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span&gt;public class CalculadoraParaSoma(){&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span&gt;   int operando1;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span&gt;   int operando2;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span&gt;   public void calcular(){&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span&gt;      int resultado = operando1 + operando2;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span&gt;      System.out.println("RESULTADO: ");&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span&gt;      System.out.println(resultado);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span&gt;   }&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span&gt;Note que na linha 66 uma variável local foi declarada. A variável local resultado &lt;span style="font-weight: bold;"&gt;receberá &lt;/span&gt;a soma dos atributos "operando1" e "operando2". Logo em seguida o resultado da soma é exibido.&lt;br /&gt;&lt;br /&gt;"resultado" não estará acessível para toda a classe. Apenas para o método em que ela foi declarada. Portanto seria um erro codificar:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;public static void main(String[] args){&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;   CalculadoraParaSoma calc = new CalculadoraParaSoma();&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;   calc.operando1 = 2;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;   calc.operando2 = 6;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;   &lt;span style="color: rgb(204, 0, 0);"&gt;calc.resultado = operando1 + operando2;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;}&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ao tentar compilar este código, o compilador exibirá a seguinte mensagem de erro:&lt;br /&gt;&lt;br /&gt;"&lt;span style="color: rgb(255, 0, 0);"&gt;calc.resultado cannot be resolved or is not a field&lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;Isto é, "resultado" não é reconhecido como membro do objeto calc. "resultado" é acessível apenas dentro do bloco onde foi declarado. No caso, o método calcular().&lt;br /&gt;&lt;br /&gt;Várias variáveis locais de diferentes tipos podem ser declaradas dentro um método, e não obrigatoriamente elas precisam ser inicializadas. Observe um bloco qualquer abaixo:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;   int valor1;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;   int valor2 = 50;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;   String nome = "Java";&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;   double altura;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;   altura = 3.4;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;   valor1 = 8;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Este bloco funcionará sem problemas. No total ele tem 4 variáveis locais, o que implica dizer que elas poderão ser acessadas até que o bloco se finalize.&lt;br /&gt;&lt;br /&gt;Tente usar o conteúdo deste bloco em algum método como o main, por exemplo - não se esqueça de que &lt;span style="font-style: italic;"&gt;main&lt;/span&gt; também é um método - e imprima os valores das variáveis locais.&lt;br /&gt;&lt;br /&gt;Este Post fica por aqui. Um abraço&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4634980943732216641-7426481806608032617?l=javaimediato.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/JavaImediato-SeuTutorialJava/~3/13hPIpjpAsk/10-ponto-e-vrgula-escopo-e-variveis.html</link><author>noreply@blogger.com (andrehbl)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_OLi0EWdXe-4/R8Hfol4xM1I/AAAAAAAAAI0/ecq-ChXEwnE/s72-c/escopo.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://javaimediato.blogspot.com/2008/02/10-ponto-e-vrgula-escopo-e-variveis.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4634980943732216641.post-981635143567767594</guid><pubDate>Fri, 01 Feb 2008 14:16:00 +0000</pubDate><atom:updated>2008-12-10T14:19:37.410-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">entrada</category><category domain="http://www.blogger.com/atom/ns#">input</category><category domain="http://www.blogger.com/atom/ns#">teclado</category><category domain="http://www.blogger.com/atom/ns#">Scanner</category><title>[9] Lendo dados a partir do teclado com Scanner</title><description>&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;Até o momento só utilizamos o console para exibir saídas como mensagens de "Hello World" ou valores de um objeto. Agora vamos aprender a ler dados a partir do teclado e exibí-los. Para isto, vamos fazer uso de nossa primeira classe da &lt;a href="http://pt.wikipedia.org/wiki/API"&gt;API&lt;/a&gt; do Java: a classe &lt;a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Scanner.html"&gt;Scanner&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Embora ler dados do teclado não seja a única especialidade da classe Scanner, a utilizaremos apenas para este propósito.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;Localizando a classe Scanner&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;Afinal, se a classe Scanner não foi criada por nós, então onde ela se encontra? Como foi dito anteriormente, Scanner é uma classe da API do Java. Mas como teremos acesso à API do Java? Simples, ao criar um projeto no Eclipse, note que "anexado" ao seu projeto se encontra a &lt;a href="http://pt.wikipedia.org/wiki/M%C3%A1quina_virtual_Java"&gt;JRE&lt;/a&gt; &lt;span style="font-style: italic;"&gt;System Library&lt;/span&gt;, que contém todas as classes da Java API.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_OLi0EWdXe-4/R6ivMMbhhLI/AAAAAAAAAIs/tQKak_d0ah8/s1600-h/JRESystemLibrary.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_OLi0EWdXe-4/R6ivMMbhhLI/AAAAAAAAAIs/tQKak_d0ah8/s320/JRESystemLibrary.PNG" alt="" id="BLOGGER_PHOTO_ID_5163569596810233010" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;A API organiza suas classes por pacotes, e toda classe da API está dentro de um pacote. A API Java é muito rica e extensa, desde já é possível que haja classes com nomes iguais. Então, para se utilizar uma determinada classe devemos especificar, em código, em qual pacote a classe se encontra. Com o Scanner não será diferente. Seu caminho é:  &lt;span style="font-style: italic; color: rgb(51, 102, 255);"&gt;java&lt;/span&gt;-&gt;&lt;span style="font-style: italic; color: rgb(51, 102, 255);"&gt;util&lt;/span&gt;-&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;Scanner&lt;/span&gt;. Isto quer dizer que a classe Scanner está dentro do pacote &lt;span style="font-style: italic; color: rgb(51, 51, 255);"&gt;util&lt;/span&gt;, que por sua vez está contido no pacote &lt;span style="color: rgb(51, 102, 255); font-style: italic;"&gt;java&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Ao ato de "usar" uma classe de um pacote externo chamamos de &lt;span style="font-weight: bold;"&gt;importação de pacotes&lt;/span&gt;. Para importar uma classe em Java utilizamos a palavra-chave &lt;span style="font-weight: bold;"&gt;import&lt;/span&gt; seguida do caminho da classe. Logo para importar Scanner usaremos o código:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;import &lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;java.util.Scanner;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;Criando um objeto do tipo Scanner&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;O procedimento para se criar uma instância de Scanner é semelhante à criação do objeto Window - classe em que trabalhamos no &lt;a href="http://javaimediato.blogspot.com/2008/01/criando-o-primeiro-objeto.html"&gt;Post anterior&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Para exemplificar vamos criar um objeto do tipo Scanner que se chamará "entrada":&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 102);"&gt;Scanner entrada = &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 102);"&gt;new&lt;/span&gt;&lt;span style="color: rgb(0, 0, 102);"&gt; Scanner(System.in);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Não se preocupe com o trecho:  &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 102);"&gt;new&lt;/span&gt;&lt;span style="color: rgb(0, 0, 102);"&gt; Scanner(System.in);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;Mantenha em mente que um objeto do tipo Scanner está sendo criado e que devemos nos concentrar apenas em ler dados a partir do teclado.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;Criando a classe EntradaDados&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;Antes de mais nada, para rodarmos um programa Java lembre-se de que precisamos de uma classe que contenha o método &lt;span style="font-style: italic;"&gt;main&lt;/span&gt;. Então, vamos criar uma classe chamada EntradaDados, e logo em seguida implementamos o método &lt;span style="font-style: italic;"&gt;main &lt;/span&gt;dentro dela:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;public class EntradaDados {&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;   public static void main(String[] args) {&lt;/span&gt;&lt;br /&gt;     &lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;   }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;}&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Esquecemos apenas de inserir o código de instanciação do objeto "entrada" dentro do método &lt;span style="font-style: italic;"&gt;main&lt;/span&gt;. Inserindo-o teremos:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;blockquote style="color: rgb(0, 0, 153);"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-size:85%;"&gt;public class EntradaDados {&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-size:85%;"&gt;    public static void main(String[] args) {&lt;br /&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 102);"&gt;Scanner entrada = &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 102);"&gt;new&lt;/span&gt;&lt;span style="color: rgb(0, 0, 102);"&gt; Scanner(System.in);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;O código acima falhará no processo de compilação, pois Scanner é reconhecido como um símbolo estranho, ou seja, o  &lt;span style="font-style: italic;"&gt;javac &lt;/span&gt;não reconhecerá Scanner como uma classe, pois você não a importou. Para resolver o problema importaremos a classe Scanner antes da declaração da classe EntradaDados. Observe o código resultante:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;import java.util.Scanner;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-size:85%;"&gt;public class EntradaDados {&lt;br /&gt;&lt;br /&gt;public static void main(String[] args) {&lt;br /&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 102);"&gt;Scanner entrada = &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 102);"&gt;new&lt;/span&gt;&lt;span style="color: rgb(0, 0, 102);"&gt; Scanner(System.in);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;     &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;   }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;Agora seu programa pode ser compilado e executado sem erros. Porém, sua única funcionalidade é criar um objeto do tipo Scanner e encerrar sua execução.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;Scanner também contém métodos&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Ora, se Scanner é uma classe que lê dados - observe a ação: LER - então ela possui métodos que possibilitam esta ação. O que difere uma classe de outra, do ponto de vista genérico, são as funcionalidades de seus métodos.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: left;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;Através do objeto "entrada", que é do tipo Scanner, temos acesso a diversos métodos para leitura de teclado&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;. São alguns deles:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;* &lt;span style="font-weight: bold;"&gt;next()  &lt;/span&gt;:              &lt;span style="color: rgb(0, 153, 0);"&gt;para ler textos&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;    * &lt;span style="font-weight: bold;"&gt;nextInt()&lt;/span&gt;  :       &lt;span style="color: rgb(0, 153, 0);"&gt;para ler números inteiros&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;    * &lt;span style="font-weight: bold;"&gt;nextFloat()&lt;/span&gt;  :   &lt;span style="color: rgb(0, 153, 0);"&gt;para ler números reais - ou números de ponto flutuante.&lt;/span&gt;&lt;br /&gt;* &lt;span style="font-weight: bold;"&gt;nextDouble() &lt;/span&gt;: &lt;span style="color: rgb(0, 153, 0);"&gt;para ler números reais - ou números de ponto flutuante com dupla precisão&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;Lendo um texto com Scanner&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;Vamos fazer com que nosso programa leia e &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;escreva o nome do usuário. Logo após a criação do objeto entrada inclua o código:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;System.out.println("Digite seu nome: ");&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;String nome = entrada.next();&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-size:85%;"&gt;System.out.println("Seu nome: ");&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;System.out.println(nome);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Note que ao executar o programa, a seguinte saída será exibida no console:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;Digite seu nome:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Este é o momento em que o usuário deve digitar seu nome no console. Após a digitação, ela deve ser confirmada com o pressionamento da tecla Enter. Logo, a seguinte saída será mostrada:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;Digite seu nome:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Schneider&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;Seu nome:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;Schneider&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;Ao digitar o nome e pressionar teclar Enter, o valor do nome é armazenado em uma variável local chamada "nome", e logo o valor contido na variável "nome" é usado para ser exibido.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;Lendo um número inteiro com Scanner&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;Vamos agora criar um programa que leia a idade do usuário e a exiba:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-size:85%;"&gt;System.out.println("Digite sua idade: ");&lt;br /&gt;int idade = entrada.nextInt();&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-size:85%;"&gt;System.out.println("Sua idade é: ");&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;System.out.println(idade);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Assim como o método next(), o método nextInt() também aguardará uma entrada do usuário e o pressionamento da tecla Enter para que o programa prossiga sua execução. Porém, o método nextInt exige que o usuário digite apenas números, nada de letras ou caracteres especiais.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_OLi0EWdXe-4/R6ipycbhhKI/AAAAAAAAAIk/HJwjlydDSm0/s1600-h/INTERROGACAO.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_OLi0EWdXe-4/R6ipycbhhKI/AAAAAAAAAIk/HJwjlydDSm0/s320/INTERROGACAO.png" alt="" id="BLOGGER_PHOTO_ID_5163563656870462626" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;VARIÁVEIS LOCAIS...&lt;br /&gt;&lt;br /&gt;As variáveis locais serão melhor abordadas no próximo Post. &lt;/span&gt; &lt;span style="font-weight: bold;"&gt;Como você deve ter percebido, uma variável local armazena um valor, assim como um atributo de uma classe. Na verdade, um atributo é uma variável, porém pertencente à classe em questão, diferentemente de uma variável local, que possui tempo de vida limitado e não pertence a uma classe.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;RESUMO&lt;br /&gt;&lt;br /&gt;  * &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;Scanner pertence ao pacote &lt;span style="font-style: italic; color: rgb(51, 51, 255);"&gt;java.util&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;   * Você aprendeu a criar um objeto do tipo Scanner:&lt;br /&gt;          &lt;br /&gt;   &lt;span style="color: rgb(0, 0, 153);"&gt;          Scanner entrada = new Scanner(System.in);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  * Para capturar uma entrada de texto do teclado usa-se o método next():&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;           entrada.next();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  * Para capturar uma entrada numérica usa-se:&lt;br /&gt;&lt;br /&gt;          &lt;span style="color: rgb(0, 0, 153);"&gt;entrada.nextInt()&lt;/span&gt; para capturar números inteiros&lt;br /&gt;          &lt;span style="color: rgb(0, 0, 153);"&gt;entrada.nextFloat()&lt;/span&gt; para capturar números reais&lt;br /&gt;        &lt;span style="color: rgb(0, 0, 153);"&gt;  entrada.nextDouble()&lt;/span&gt; para capturar números reais com dupla precisão&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Exercícios &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1. Construa um programa que leia o nome e a idade do usuário e exiba-os logo em seguida.&lt;br /&gt;&lt;br /&gt;2. Construa um programa que leia o nome e o sobrenome do usuário e exiba-os logo em seguida.&lt;br /&gt;&lt;br /&gt;3. Construa um programa que leia a altura do usuário e exiba-a na tela.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ficamos por aqui. Até a próxima&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4634980943732216641-981635143567767594?l=javaimediato.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/JavaImediato-SeuTutorialJava/~3/KZ1l_H7s_3o/lendo-dados-partir-do-teclado-com.html</link><author>noreply@blogger.com (andrehbl)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_OLi0EWdXe-4/R6ivMMbhhLI/AAAAAAAAAIs/tQKak_d0ah8/s72-c/JRESystemLibrary.PNG" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://javaimediato.blogspot.com/2008/02/lendo-dados-partir-do-teclado-com.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4634980943732216641.post-1317640320163805344</guid><pubDate>Mon, 21 Jan 2008 12:02:00 +0000</pubDate><atom:updated>2008-07-08T20:18:11.550-07:00</atom:updated><title>[8] Criando o primeiro objeto</title><description>&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;No Post anterior tivemos nosso primeiro contato formal com a Programação Orientada a Objetos. Aprendemos um pouco sobre abstração de classes a partir de uma entidade do mundo real ou uma entidade criada por nós baseada em conceitos do mundo real. Neste Post aprenderemos a como implementar classes e a como criar objetos em Java.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Criando a primeira classe em código&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;Se você não percebeu ainda, desde o primeiro código-fonte do nosso tutorial que já trabalhamos com, no mínimo, uma classe. Se não te recordas, o arquivo HelloWorld.java tem o seguinte conteúdo:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;class&lt;/b&gt;&lt;/span&gt; HelloWorld{&lt;br /&gt;&lt;br /&gt; &lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;static&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;void&lt;/b&gt;&lt;/span&gt; main(String[] args){&lt;br /&gt;  System.out.println(&lt;span style="color: rgb(0, 0, 255);"&gt;"Hello World"&lt;/span&gt;);&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;}&lt;/blockquote&gt;&lt;/pre&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;HelloWorld é uma classe, você a declarou. A classe HelloWorld não tem atributos, e tem apenas um método: &lt;span style="font-style: italic;"&gt;main&lt;/span&gt;. O método &lt;span style="font-style: italic;"&gt;main &lt;/span&gt;é um método especial, reservado pela JVM para que um programa Java possa ser executado. Falaremos sobre ele adiante.&lt;br /&gt;&lt;br /&gt;Para escrevermos, ou melhor, para &lt;span style="font-weight: bold;"&gt;declararmos&lt;/span&gt; nossa primeira classe &lt;span&gt;pós-HelloWorld &lt;/span&gt;vamos resolver o exercício do Post anterior, que seria modelar uma classe baseada em uma janela do &lt;a href="http://pt.wikipedia.org/wiki/Microsoft_Windows"&gt;Windows&lt;/a&gt;. Chamaremos nossa classe de "Window":&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Window&lt;br /&gt;&lt;br /&gt;Atributos:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;  - largura&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;  - altura&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;- posicaoX&lt;br /&gt;- posicaoY&lt;br /&gt;- estaMaximizada&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;Métodos:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;  - abrir&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;  - fechar&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;  - minimizar&lt;br /&gt;- restaurar&lt;br /&gt;- mover&lt;br /&gt;&lt;br /&gt;A próxima fase de nossa abstração será adaptar a modelagem à linguagem Java. Devemos prosseguir com as seguintes premissas:&lt;br /&gt;&lt;br /&gt;* todo atributo tem um &lt;span style="font-weight: bold;"&gt;tipo&lt;/span&gt;&lt;br /&gt;* todo método tem um &lt;span style="font-weight: bold;"&gt;retorno&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Os &lt;a href="http://pt.wikipedia.org/wiki/Tipo_de_dado"&gt;tipos&lt;/a&gt; dividem-se em: &lt;span style="font-weight: bold;"&gt;tipos primitivos&lt;/span&gt; e &lt;span style="font-weight: bold;"&gt;tipos de referência&lt;/span&gt;. Para o exemplo da classe Window, faremos uso apenas de tipos primitivos, ou seja, tipos que não são classes. São exemplos de tipos primitivos: números inteiros, números reais e valores &lt;span style="font-style: italic;"&gt;booleanos &lt;/span&gt;- &lt;span style="font-weight: bold;"&gt;true&lt;/span&gt; ou &lt;span style="font-weight: bold;"&gt;false&lt;/span&gt;. Os tipos primitivos são representados por palavras-chaves específicas. Por exemplo, para indicar que um atributo armazenará um valor que seja um número inteiro, utilizamos a palavra chave &lt;span style="font-weight: bold;"&gt;int&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Vamos começar a implementar a classe Window:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="color:#800080;"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#800080;"&gt;&lt;b&gt;class&lt;/b&gt;&lt;/span&gt; Window{&lt;br /&gt;&lt;br /&gt; &lt;span style="color:#800080;"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/span&gt; largura;&lt;br /&gt; &lt;span style="color:#800080;"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/span&gt; altura;&lt;br /&gt; &lt;span style="color:#800080;"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/span&gt; posicaoAncoramentoX;&lt;br /&gt; &lt;span style="color:#800080;"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/span&gt; posicaoAncoramentoY;&lt;br /&gt; &lt;span style="color:#800080;"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/span&gt; posicaoX;&lt;br /&gt; &lt;span style="color:#800080;"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/span&gt; posicaoY;&lt;br /&gt; &lt;span style="color:#800080;"&gt;&lt;b&gt;boolean&lt;/b&gt;&lt;/span&gt; estado;&lt;br /&gt;&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;Note que apenas os atributos da classe Window foram &lt;span style="font-weight: bold;"&gt;declarados&lt;/span&gt;, restando ainda a implementação de seus métodos.&lt;br /&gt;&lt;br /&gt;Métodos são declarados para executarem ações referentes à classe em questão. &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;Após executar todas suas linhas de comando um método é finalizado.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;Um método é executado a partir do momento em que ele é chamado, e todo método retorna algum valor, seja ele um tipo primitivo, um tipo de referência ou até mesmo &lt;span style="font-weight: bold;"&gt;void&lt;/span&gt;. &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;Tenha em mente que &lt;span style="font-weight: bold;"&gt;void&lt;/span&gt; representa um valor vazio, mas é um valor, o que é diferente de não ter um valor.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;Nesta classe especificaremos que cada um dos métodos da classe Window retornará "vazio"&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;, usando a palavra-chave &lt;span style="font-weight: bold;"&gt;void&lt;/span&gt;. Faremos uma melhor explanação sobre métodos em Posts posteriores.&lt;br /&gt;&lt;br /&gt;Observe como a classe Window será implementada com a inclusão de seus métodos:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;Teoricamente &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;a classe Window, até o momento, não possui funcionalidade alguma, pois seus métodos não possuem códigos a serem executados.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;Criando um objeto do tipo Window&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;Antes de criar um objeto do tipo Window você precisa fazer o que se pede:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;   * Crie uma nova classe chamada Window no seu ambiente de programação e cole nela o conteúdo do código da classe Window exibido acima&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;   * Codifique os 5 métodos da classe Window com comandos &lt;span style="font-style: italic;"&gt;System.out.println()&lt;/span&gt;. Escreva mensagens como "A JANELA FOI MINIMIZADA" para o método minimizar(); "A JANELA FOI RESTAURADA" para o método restaurar(), e assim por diante. Observe como ficaria com o método &lt;span style="font-style: italic;"&gt;mover()&lt;/span&gt;:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;pre&gt;&lt;span style="color:#800080;"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#800080;"&gt;&lt;b&gt;void&lt;/b&gt;&lt;/span&gt; mover(){&lt;br /&gt; System.out.println(&lt;span style="color:#0000ff;"&gt;"A Janela teve sua posição modificada"&lt;/span&gt;);&lt;br /&gt;}&lt;/pre&gt; &lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;Por fim, sem método &lt;span style="font-style: italic;"&gt;main&lt;/span&gt; nossa classe não pode ser testada. Para provar que a classe Window não necessariamente precisa ser composta por um método &lt;span style="font-style: italic;"&gt;main&lt;/span&gt; para ser testada, vamos criar outra classe chamada WindowTest:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="color:#800080;"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#800080;"&gt;&lt;b&gt;class&lt;/b&gt;&lt;/span&gt; WindowTest{&lt;br /&gt;&lt;br /&gt; &lt;span style="color:#800080;"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#800080;"&gt;&lt;b&gt;static&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#800080;"&gt;&lt;b&gt;void&lt;/b&gt;&lt;/span&gt; main(String[] args){&lt;br /&gt;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;}&lt;/pre&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;Agora temos duas classes: Window e WindowTest. A classe WindowTest não tem nenhum atributo e apenas um método, que é o método main. Como já foi dito, o método main é a porta de entrada para que seu programa seja executado. Porém, precisamos codificar algo dentro dele, caso contrário a JVM não terá o que executar no nosso programa. Criaremos então nosso primeiro objeto em Java. Como já sabemos que todo objeto tem um tipo, criaremos um objeto do tipo Window.&lt;br /&gt;&lt;br /&gt;A princípio você deve seguir a seguinte sintaxe para a criação de objetos em Java:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;pre&gt;&lt;span style="color:#800080;"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#800080;"&gt;&lt;b&gt;void&lt;/b&gt;&lt;/span&gt; mover(){&lt;br /&gt; System.out.println(&lt;span style="color:#0000ff;"&gt;"A Janela teve sua posição modificada"&lt;/span&gt;);&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;&lt;tipo_do_objeto&gt; &lt;/tipo_do_objeto&gt;&lt;/span&gt; &lt;span style="color: rgb(255, 102, 0);"&gt;&lt;nome_do_objeto&gt;&lt;/nome_do_objeto&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;TIPO_DO_OBJETO&lt;/span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;NOME_DO_OBJETO&lt;/span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;=      &lt;span style="font-weight: bold;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(204, 0, 0);"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;TIPO_DO_OBJETO ( )&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;&lt;tipo_do_objeto&gt;&lt;/tipo_do_objeto&gt;&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;O parâmetro &lt;span style="color: rgb(204, 0, 0);"&gt;TIPO_DO_OBJETO&lt;/span&gt; nada mais é que a classe que você queira criar objetos derivados dela. Em outras palavras, &lt;span style="font-weight: bold;"&gt;de que tipo&lt;/span&gt; será seu objeto. No nosso caso o objeto será do tipo Window.&lt;br /&gt;&lt;br /&gt;O parâmetro &lt;span style="color: rgb(255, 102, 0);"&gt;NOME_DO_OBJETO&lt;/span&gt; depende apenas de você. Você nomeará o objeto que está sendo criado como desejar - com algumas exceções que veremos em Posts posteriores, claro.&lt;br /&gt;&lt;br /&gt;= é nada mais que um operador binário utilizado para atribuições. Ele é um operador binário por precisar de dois operandos: um à sua esquerda, outro à sua direita. Seu funcionamento consiste em atribuir o valor do operando à direita para o operando à esquerda.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;new&lt;/span&gt; é uma palavra-chave da linguagem Java que criará o objeto de fato. Na vida real é mais comum que você encontre o termo &lt;span style="font-weight: bold;"&gt;instanciar uma classe &lt;/span&gt;do que "criar um objeto".&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;TIPO_DO_OBJETO ( )&lt;/span&gt;  é o que chamamos de &lt;a href="http://pt.wikipedia.org/wiki/Construtor"&gt;construtor&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;. Falaremos melhor sobre construtores em Posts posteriores.&lt;br /&gt;&lt;br /&gt;Nosso código dentro do método &lt;span style="font-style: italic;"&gt;main&lt;/span&gt; ficará da seguinte maneira:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;pre&gt;Window objetoWindow = &lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt; Window();&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;Já que agora temos um objeto "concreto", podemos manipulá-lo sem problemas. Lembre-se que dentro de métodos os comandos são lidos da esquerda para a direita e de cima para baixo. Então logo após a criação do objeto &lt;span style="font-style: italic;"&gt;objetoWindow&lt;/span&gt; vamos fazer algumas modificações nos seus atributos:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;pre&gt;objetoWindow.largura = &lt;span style="color: rgb(255, 0, 0);"&gt;300&lt;/span&gt;;&lt;br /&gt;objetoWindow.altura = &lt;span style="color: rgb(255, 0, 0);"&gt;300&lt;/span&gt;;&lt;br /&gt;objetoWindow.posicaoX = &lt;span style="color: rgb(255, 0, 0);"&gt;25&lt;/span&gt;;&lt;br /&gt;objetoWindow.posicaoY = &lt;span style="color: rgb(255, 0, 0);"&gt;100&lt;/span&gt;;&lt;br /&gt;objetoWindow.estaMaximizada = &lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;true&lt;/b&gt;&lt;/span&gt;;&lt;/pre&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;Logo em seguida insira os comandos:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;pre&gt;System.out.println(objetoWindow.largura);&lt;br /&gt;System.out.println(objetoWindow.altura);&lt;br /&gt;System.out.println(objetoWindow.posicaoX);&lt;br /&gt;System.out.println(objetoWindow.posicaoY);&lt;br /&gt;System.out.println(objetoWindow.estaMaximizada);&lt;/pre&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;br /&gt;Execute seu programa e você verá no console os seguintes resultados impressos na tela:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;300&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;300&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;25&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;100&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;true&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;Observe que os valores exibidos são os mesmos que você atribuiu no início do código. Esta é uma das funções de um atributo: armazenar valores.&lt;br /&gt;&lt;br /&gt;Já que conseguimos testar uma das funcionalidades dos atributos de uma classe, vamos testar agora os métodos do objeto objetoWindow:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;objetoWindow.mover();&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;objetoWindow.restaurar();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;O console deverá exibir algo como - dependendo do que você escreveu:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;A Janela teve sua posição modificada&lt;br /&gt;A Janela foi restaurada&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;Parabéns, você criou seu primeiro objeto em Java e até o manipulou alterando e exibindo os valores de seus atributos e chamou seus métodos. Para fixar sua compreensão faça os exercícios abaixo:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;EXERCÍCIOS&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;1. Ainda no objeto &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;objetoWindow, escolha um de seus atributos e codifique uma seqüência de comandos como:&lt;br /&gt;&lt;br /&gt;* alterar o valor do atributo&lt;br /&gt;* imprimir valor do atributo&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;   * alterar o valor do atributo&lt;br /&gt;* imprimir valor do atributo&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;   * alterar o valor do atributo&lt;br /&gt;* imprimir valor do atributo&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;2. Crie um segundo objeto, e manipule e imprima os valores de seus atributos.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;Ficamos por aqui. Um abraço e até a próxima&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4634980943732216641-1317640320163805344?l=javaimediato.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/JavaImediato-SeuTutorialJava/~3/HVpRLbJHEGE/criando-o-primeiro-objeto.html</link><author>noreply@blogger.com (andrehbl)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://javaimediato.blogspot.com/2008/01/criando-o-primeiro-objeto.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4634980943732216641.post-137106694737572300</guid><pubDate>Sun, 13 Jan 2008 17:11:00 +0000</pubDate><atom:updated>2008-12-10T14:19:37.639-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">objetos</category><category domain="http://www.blogger.com/atom/ns#">POO</category><category domain="http://www.blogger.com/atom/ns#">classes</category><title>[7] Introdução à Programação Orientada a Objetos</title><description>&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-weight: bold;"&gt;Do que se trata a POO - &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Programação Orientada a Objetos&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A &lt;a href="http://pt.wikipedia.org/wiki/Orienta%C3%A7%C3%A3o_a_objeto"&gt;Programação Orientada a Objetos&lt;/a&gt; é um paradigma de programação em que os problemas computacionais são resolvidos através da modelagem e a criação de &lt;span style="font-weight: bold;"&gt;objetos&lt;/span&gt;, e a troca de mensagens entre eles. Através da abstração de objetos e problemas do mundo real é possível modelar classes de forma com que complexos sistemas possam ser construídos de forma mais robusta e confiável do que outros &lt;a href="http://pt.wikipedia.org/wiki/Paradigma_de_programa%C3%A7%C3%A3o"&gt;paradigmas de programação&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Se você ainda não compreende o que são &lt;span style="font-weight: bold;"&gt;classes &lt;/span&gt;e &lt;span style="font-weight: bold;"&gt;objetos&lt;/span&gt;, não se preocupe. Leia este Post e mostre a si mesmo que você sabe mais sobre classes e objetos do que imagina.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Objetos são a chave da POO&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;br /&gt;Você está neste exato momento olhando para a tela do seu &lt;a href="http://pt.wikipedia.org/wiki/Monitor_de_v%C3%ADdeo"&gt;monitor&lt;/a&gt;. Observe todos os detalhes que nele existem: botões, letras e adesivos; e logo em seguida retome sua leitura.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;   Tenho certeza que seu monitor possui características próprias e nele podemos fazer algumas ações. São algumas &lt;span style="font-weight: bold;"&gt;características &lt;/span&gt;do monitor:  cor, largura, altura, marca, modelo, etc. E são algumas &lt;span style="font-weight: bold;"&gt;ações&lt;/span&gt;: ligar, desligar, reajustar tamanho de tela, desmagnetizar, etc. Desde já o seu monitor é um &lt;span style="font-weight: bold;"&gt;objeto&lt;/span&gt; que possui as características e ações descritas acima.&lt;br /&gt;&lt;br /&gt;Agora vamos analisar uma lâmpada: ela possui basicamente uma voltagem específica e um estado - que pode ser "ligado" ou "desligado". Através dela as seguintes ações podem ser feitas: ligar e desligar. A lâmpada também é um &lt;span style="font-weight: bold;"&gt;objeto&lt;/span&gt;. Se imaginarmos ela acesa, seu &lt;span style="font-weight: bold;"&gt;estado&lt;/span&gt; será "ligado". E caso ela esteja apagada, seu estado será "desligado". Então note que a voltagem específica e o estado da lâmpada também são características - como no exemplo anterior, mas essas características também podem ser chamadas de &lt;span style="font-weight: bold;"&gt;estados&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Entendemos até agora que um &lt;span style="font-weight: bold;"&gt;objeto&lt;/span&gt; possui características/estados e ações.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_OLi0EWdXe-4/R4pMT5onrKI/AAAAAAAAAIY/N7Yzv8tNNLA/s1600-h/EXCLAMACAO.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_OLi0EWdXe-4/R4pMT5onrKI/AAAAAAAAAIY/N7Yzv8tNNLA/s320/EXCLAMACAO.png" alt="" id="BLOGGER_PHOTO_ID_5155016628251372706" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Em termos de Orientação a Objetos não há diferenças técnicas entre os termos &lt;span style="font-weight: bold;"&gt;característica&lt;/span&gt; e &lt;span style="font-weight: bold;"&gt;estado&lt;/span&gt;. Porém, entre os programadores o termo &lt;a href="http://pt.wikipedia.org/wiki/Atributo"&gt;&lt;span style="font-weight: bold;"&gt;atributo&lt;/span&gt; &lt;/a&gt;é o mais comumente utilizado.&lt;br /&gt;&lt;br /&gt;Em termos de Orientação a Objetos, para designar as &lt;span style="font-weight: bold;"&gt;ações&lt;/span&gt; de um &lt;span style="font-weight: bold;"&gt;objeto&lt;/span&gt; é comum também que se utilize o termo &lt;span style="font-weight: bold;"&gt;comportamento&lt;/span&gt;, mas o termo &lt;span style="font-weight: bold;"&gt;método &lt;/span&gt;é  mais freqüentemente utilizado.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Então aprendemos até agora que:&lt;br /&gt;&lt;br /&gt;* Um objeto é composto por características e ações;&lt;br /&gt;* característica = estado = atributo&lt;br /&gt;* ação = comportamento = método&lt;br /&gt;&lt;br /&gt;Logo, a seguinte sentença também é verdadeira:&lt;br /&gt;&lt;br /&gt;* Um objeto é composto por &lt;span style="font-weight: bold;"&gt;atributos &lt;/span&gt;e &lt;span style="font-weight: bold;"&gt;métodos&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Java é uma linguagem Orientada a Objetos&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Como uma boa linguagem moderna, Java é uma linguagem Orientada a Objetos. Isto significa dizer que todo nosso ciclo de programação nesta linguagem envolverá manipulação de objetos. Como já dito anteriormente, um objeto Java é composto por &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-weight: bold;"&gt;atributos &lt;/span&gt;e &lt;span style="font-weight: bold;"&gt;métodos&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;. Posteriormente aprenderemos a criar e manipular objetos em código Java.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Entendendo o que são Classes&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Cada objeto presente em sua volta teve sua origem através de um modelo específico. No caso de uma caneta de marca, por exemplo, existem várias canetas iguais a ela. Outras da mesma marca são quase idênticas, mudando apenas a cor de sua tinta. Então, você já parou para pensar sobre como inúmeras canetas da mesma marca podem ser tão semelhantes? Elas seguem um modelo de criação em comum que especifica quantos centímetros as canetas terão; a moldagem e a cor da tampa; se a tinta será azul, vermelha ou preta, etc.&lt;br /&gt;Em Orientação a Objetos, este "modelo de criação" se chama &lt;span style="font-weight: bold;"&gt;classe&lt;/span&gt;, e os modelos que são concretizados chamam-se &lt;span style="font-weight: bold;"&gt;objetos&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Imagine uma classe como um molde, um projeto. Uma classe não possui uma forma "concreta", digamos assim. Os objetos sim são concretos. Não existe objeto sem classe, pois uma classe é um modelo para a criação de um ou vários objetos.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Entendendo atributos e métodos com  3 classes:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;&lt;span style="color: rgb(0, 51, 0);"&gt;CLASSE 1 - Mouse&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;É sempre um ótimo exercício abstrair atributos e métodos de objetos do "mundo real". Neste primeiro exemplo escolhemos o objeto Mouse. Obviamente não especificaremos absolutamente todos os seus atributos e métodos, mas apenas os principais, sem detalhes aprofundados.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Atributos:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;   * marca&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;   * cor&lt;br /&gt;* modelo&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;   * botão esquerdo&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;   * botão direito&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;   * botão central&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Métodos:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;   * mover cursor&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;   * clicar com botão esquerdo&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;   * clicar com botão direito&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;   * clicar com botão central&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;   * segurar botão esquerdo&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;   * segurar botão direito&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;   * soltar botão esquerdo&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;   * soltar botão direito&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;&lt;span style="color: rgb(0, 51, 0);"&gt;-- comentário --&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Agora, vários objetos derivados da classe Mouse podem ser criados. Todos os objetos derivados de Mouse terão: uma marca, uma cor, um modelo, um botão esquerdo, um botão direito e um botão central, sem exceções.&lt;br /&gt;&lt;br /&gt;Todas as operações básicas que um mouse faria estão listadas como métodos da classe Mouse.  Você precisa ter em mente que, na lógica orientada a objetos você precisa pensar da seguinte maneira: &lt;span style="font-style: italic;"&gt;o que acontece quando o método "mover cursor" for chamado? Se o usuário mover o mouse para frente, o cursor do mouse deve ir para cima. Se o usuário mover o mouse para esquerda, o cursor do mouse deve ir para esquerda. &lt;/span&gt;O mesmo tipo de pensamento deve ocorrer não só com os métodos de movimento e clique do mouse, mas com qualquer método de qualquer classe.&lt;br /&gt;&lt;br /&gt;Para que um método de uma classe seja executado, ele precisa ser chamado/invocado. No nosso caso, que temos um objeto do tipo Mouse, ao usuário clicar no botão esquerdo do mouse, por exemplo, um sinal elétrico pode ser disparado para o programa em questão, e desde então o método "clicar com botão esquerdo" deve ser chamado, logo o código que estiver dentro do método "clicar com botão esquerdo" será executado.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;&lt;span style="color: rgb(0, 51, 0);"&gt;CLASSE 2 - Usuário&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Tenho certeza absoluta que ao menos uma vez você se cadastrou em algum site, seja ele um fórum, um servidor de e-mails, ou qualquer outra coisa. No formulário de cadastro você encontra alguns campos a serem preenchidos como: &lt;span style="font-style: italic;"&gt;nickname&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;login&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;senha&lt;/span&gt;, etc. Preenchidos esses dados - que são um molde para um usuário do site - um novo objeto do tipo Usuário será criado. Analisemos então, em um site qualquer, os atributos e métodos da classe Usuário, melhor dizendo, qual as características de cada usuário cadastrado no site e o que cada um deles pode fazer.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Atributos:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;   * nome completo&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;   * nickname&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;   * login&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;   * password&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;   * e-m&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;ail    &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Métodos:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;   * alterar nome&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;   * alterar password&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;&lt;span style="color: rgb(0, 51, 0);"&gt;-- comentário --&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Talvez você tenha se surpreendido com o pouco número de métodos existentes na classe Usuário.  Você pode se questionar também sobre a ausência de métodos como: postar no fórum, deletar conta e convidar um amigo. Mas será que realmente a funcionalidade de postar de fórum, por exemplo, pertence a um usuário, ou será que o usuário apenas usa conta para usufruir da funcionalidade de postar no fórum, que na realidade pertence ao sistema do site em si?&lt;br /&gt;&lt;br /&gt;A modelagem de classes varia de caso para caso, de modelador para modelador. Não há regras fixas quanto ao seu planejamento.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;&lt;span style="color: rgb(0, 51, 0);"&gt;CLASSE 3 - Ball&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Se você estiver programando um jogo onde uma pequena bola se movimenta em uma posição aleatória na tela em uma determinada velocidade, e que ao colidir com qualquer borda da tela ela é rebatida para outra direção como no vídeo abaixo:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-a6c350ae27c17fb8" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.blogger.com/img/videoplayer.swf?videoUrl=http%3A%2F%2Fvp.video.google.com%2Fvideodownload%3Fversion%3D0%26secureurl%3DqAAAAP0YN7YpWvFNWPjMMOzGjlVjWKlZlunfvKp789GlgELa7uXbLE7hSN52lhJ99SJoSl_y7_TUvbKLt0hF0Xr-in-ZiMNSMOtnJ8HPrp2GJznH8ES__W8HVhUYYOEtrAo11qtcKaR4uBb5HLCoxkFGv1g-pauXw2_gnNXHR2HV6YcX2NXNjUUcu_15qTee8lcN5W2Yczq-zA3_x-7sy5RhMa5JnMVGneXm1Yws-ld9GuF9%26sigh%3D61F1StMljuuXsJkWvgSRzdPcq50%26begin%3D0%26len%3D86400000%26docid%3D0&amp;amp;nogvlm=1&amp;amp;thumbnailUrl=http%3A%2F%2Fvideo.google.com%2FThumbnailServer2%3Fapp%3Dblogger%26contentid%3Da6c350ae27c17fb8%26offsetms%3D5000%26itag%3Dw320%26sigh%3DtflNOT81yEMJAljrWWNkJsmmgAQ&amp;amp;messagesUrl=video.google.com%2FFlashUiStrings.xlb%3Fframe%3Dflashstrings%26hl%3Den"&gt;
&lt;param name="bgcolor" value="#FFFFFF"&gt;
&lt;embed width="320" height="266" src="http://www.blogger.com/img/videoplayer.swf?videoUrl=http%3A%2F%2Fvp.video.google.com%2Fvideodownload%3Fversion%3D0%26secureurl%3DqAAAAP0YN7YpWvFNWPjMMOzGjlVjWKlZlunfvKp789GlgELa7uXbLE7hSN52lhJ99SJoSl_y7_TUvbKLt0hF0Xr-in-ZiMNSMOtnJ8HPrp2GJznH8ES__W8HVhUYYOEtrAo11qtcKaR4uBb5HLCoxkFGv1g-pauXw2_gnNXHR2HV6YcX2NXNjUUcu_15qTee8lcN5W2Yczq-zA3_x-7sy5RhMa5JnMVGneXm1Yws-ld9GuF9%26sigh%3D61F1StMljuuXsJkWvgSRzdPcq50%26begin%3D0%26len%3D86400000%26docid%3D0&amp;amp;nogvlm=1&amp;amp;thumbnailUrl=http%3A%2F%2Fvideo.google.com%2FThumbnailServer2%3Fapp%3Dblogger%26contentid%3Da6c350ae27c17fb8%26offsetms%3D5000%26itag%3Dw320%26sigh%3DtflNOT81yEMJAljrWWNkJsmmgAQ&amp;amp;messagesUrl=video.google.com%2FFlashUiStrings.xlb%3Fframe%3Dflashstrings%26hl%3Den" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;br /&gt;Logo, a classe Ball será composta por:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Atributos:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;   * imagem&lt;br /&gt;* posicaoX&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;* posicaoY&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;   * velocidade&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Métodos:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;   * mover&lt;br /&gt;* parar&lt;br /&gt;* rebater&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;&lt;span style="color: rgb(0, 51, 0);"&gt;-- comentário --&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Talvez este exemplo seja o mais próximo da prática real da POO, pois se trata de uma abstração de um objeto que não existe fisicamente, mas que é composto por conceitos existentes do mundo real que são aplicados para se obter um objeto virtual perfeitamente manipulável com características e comportamentos próprios.&lt;br /&gt;&lt;br /&gt;Analisemos a justificativa de seus atributos: cada objeto do tipo Ball move-se pela tela nos eixos X e Y. Logo, um objeto Ball tem os atributos posicaoX e posicaoY, para armazenar sua posição atual nos eixos X e Y, respectivamente. Um objeto Ball também tem uma velocidade, que pode ser reajustada quando necessário - hora pode se movimentar mais lentamente pelos eixos X e Y, hora pode se movimentar de forma mais rápida. Um objeto do tipo Ball também possui uma imagem, para que este possa ser visualizado pelo jogador.&lt;br /&gt;&lt;br /&gt;Na modelagem da classe Ball decidimos criar 3 métodos: mover, parar e rebater; que na verdade são as ações do objeto. Ao invocar o método mover, o objeto Ball se movimentará pela tela. Já ao método "parar" ser chamado, o objeto Ball parará de se deslocar. E quando o método rebater foi invocado, o objeto Ball mudará sua direção de movimento.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-weight: bold;"&gt;RESUMO:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;* Você aprendeu que uma classe é composta por atributos e métodos&lt;br /&gt;* Você aprendeu que uma classe é um modelo para a criação de um ou vários objetos&lt;br /&gt;*  Se um objeto é derivado de uma classe X, pode-se dizer que este objeto é do &lt;span style="font-style: italic;"&gt;tipo&lt;/span&gt; X&lt;br /&gt;* Os métodos geralmente são nomeados com verbos, pois representam ações do objeto&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-weight: bold;"&gt;ATENÇÃO&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt; Você deve se manter atento no momento de modelagem de suas classes, pois elas devem ser moldadas de forma com que um determinado problema computacional seja resolvido. Independente de os exemplos citados neste Post, que são baseados em objetos do mundo real, serem úteis para resolver problemas reais de programação, eles são mais do que tudo uma boa forma de exercitar sua capacidade de abstração, sua forma de pensar orientada a objetos.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-weight: bold;"&gt;EXERCÍCIOS:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;1. Abstraia uma classe a partir de uma porta, que é um objeto do mundo real. Não se prenda a detalhes profundos, apenas molde suas características e comportamentos básicos.&lt;br /&gt;&lt;br /&gt;2. Abstraia uma classe a partir de uma janela comum do Windows, independente do programa que nela estiver sendo rodado.&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;&lt;span style="color: rgb(0, 51, 0);"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span&gt;3. Abstraia uma classe a partir de um personagem de um simples jogo 2D de plataforma.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Bem, ficamos por aqui. Um abraço e até a próxima&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4634980943732216641-137106694737572300?l=javaimediato.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><enclosure type="video/mp4" url="http://www.blogger.com/video-play.mp4?contentId=a6c350ae27c17fb8&amp;type=video%2Fmp4" length="0" /><link>http://feedproxy.google.com/~r/JavaImediato-SeuTutorialJava/~3/hL9Tz7jJKyM/introduo-programao-orientada-objetos.html</link><author>noreply@blogger.com (andrehbl)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_OLi0EWdXe-4/R4pMT5onrKI/AAAAAAAAAIY/N7Yzv8tNNLA/s72-c/EXCLAMACAO.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://javaimediato.blogspot.com/2008/01/introduo-programao-orientada-objetos.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4634980943732216641.post-6561822682864107425</guid><pubDate>Wed, 09 Jan 2008 01:21:00 +0000</pubDate><atom:updated>2008-12-10T14:19:40.520-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">JIT</category><category domain="http://www.blogger.com/atom/ns#">hello world</category><category domain="http://www.blogger.com/atom/ns#">eclipse</category><title>[6] Hello World no Eclipse</title><description>&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;Já que aprendemos a executar o Hello World manualmente, vamos aprender a executar o Hello World no IDE Eclipse, cujo processo é relativamente mais simples. Acompanhando esta seção, também faremos um rápido &lt;span style="font-style: italic;"&gt;Tour&lt;/span&gt; pelo Eclipse para que possamos se situar melhor sobre o que iremos &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;fazer.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;Primeiro contato com o Eclipse&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;A primeira tela que você verá do Eclipse será esta:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_OLi0EWdXe-4/R4Ql95onq5I/AAAAAAAAAGQ/AWoTOpPaDVk/s1600-h/WORKSPACE.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_OLi0EWdXe-4/R4Ql95onq5I/AAAAAAAAAGQ/AWoTOpPaDVk/s320/WORKSPACE.png" alt="" id="BLOGGER_PHOTO_ID_5153285618992130962" border="0" /&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;O que o Eclipse lhe requisita é o diretório que você deseja trabalhar, isto é, o diretório que você armazenará seu(s) projeto(s). Clicand&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;o em "Browse..." você vê uma tela semelhante a essa:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_OLi0EWdXe-4/R4QstZonq6I/AAAAAAAAAGY/WqppsFtLnKE/s1600-h/Eclipse_Browse.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_OLi0EWdXe-4/R4QstZonq6I/AAAAAAAAAGY/WqppsFtLnKE/s320/Eclipse_Browse.PNG" alt="" id="BLOGGER_PHOTO_ID_5153293032105683874" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;Nesta janela você deve especificar o caminho onde ficarão armazenados o(s) seu(s) projeto(s). Se você deseja criar uma nova pasta para isto, clique no botão "Criar nova pasta".&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;Tendo escolhido seu diretório de trabalho, vá adiante clicando em OK. Você deve ser recepcionado pelo Eclipse com uma tela como esta:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_OLi0EWdXe-4/R4Qw6ponq7I/AAAAAAAAAGg/dsn0KYdP9vk/s1600-h/EclipseWelcome.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_OLi0EWdXe-4/R4Qw6ponq7I/AAAAAAAAAGg/dsn0KYdP9vk/s320/EclipseWelcome.png" alt="" id="BLOGGER_PHOTO_ID_5153297657785461682" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;Feche esta janela e você se deparará com a face do Eclipse - que a princípio pode chegar a assustar um pouco por ser aparentemente carregada:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_OLi0EWdXe-4/R4QyQponq8I/AAAAAAAAAGo/m1Ua3qeHlzI/s1600-h/Eclipse_Face.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_OLi0EWdXe-4/R4QyQponq8I/AAAAAAAAAGo/m1Ua3qeHlzI/s320/Eclipse_Face.PNG" alt="" id="BLOGGER_PHOTO_ID_5153299135254211522" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0); font-weight: bold;"&gt;&lt;span style="font-size:85%;"&gt;Criando um novo projeto&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;No Eclipse, antes de criar um arquivo &lt;span style="color: rgb(51, 102, 255);"&gt;.java&lt;/span&gt; - que posteriormente chamarem&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;os &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;de &lt;a href="http://pt.wikipedia.org/wiki/Classe_%28programa%C3%A7%C3%A3o%29"&gt;Classe&lt;/a&gt; - devemos criar um projeto. Para isto percorreremos o seguinte caminho no menu principal: &lt;span style="font-style: italic;"&gt;File-&gt;New-&gt;Java Project&lt;/span&gt;., como na figura abaixo:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_OLi0EWdXe-4/R4Q1f5onq9I/AAAAAAAAAGw/wW0uma3IW30/s1600-h/CreateNewProject1.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_OLi0EWdXe-4/R4Q1f5onq9I/AAAAAAAAAGw/wW0uma3IW30/s320/CreateNewProject1.PNG" alt="" id="BLOGGER_PHOTO_ID_5153302695782099922" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;Se preferir outra maneira, em ve&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;z&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt; de selecionar diretamente "Java Project&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;", selec&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;ione a opção "Other" e em seguida opte por "Java Project":&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_OLi0EWdXe-4/R4WHaZonrJI/AAAAAAAAAIQ/2kbjOwy3rt8/s1600-h/CreateNewProject2.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_OLi0EWdXe-4/R4WHaZonrJI/AAAAAAAAAIQ/2kbjOwy3rt8/s320/CreateNewProject2.PNG" alt="" id="BLOGGER_PHOTO_ID_5153674236223007890" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;Ambos os passos levam ao mesmo caminho: a criação de um novo projeto. Um janela com título "&lt;span style="font-style: italic;"&gt;New Java Project&lt;/span&gt;" deve ser exibida e a única coisa que você precisa especificar no momento é o nome do seu projeto, como na imagem a seguir:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_OLi0EWdXe-4/R4Q9P5onrBI/AAAAAAAAAHQ/9-JoVkWTdeQ/s1600-h/NewProject.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_OLi0EWdXe-4/R4Q9P5onrBI/AAAAAAAAAHQ/9-JoVkWTdeQ/s320/NewProject.PNG" alt="" id="BLOGGER_PHOTO_ID_5153311216997215250" border="0" /&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;Logo, seu projeto será criado:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_OLi0EWdXe-4/R4Q-CZonrCI/AAAAAAAAAHY/YD2MW20g4kI/s1600-h/ProjectCreated.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_OLi0EWdXe-4/R4Q-CZonrCI/AAAAAAAAAHY/YD2MW20g4kI/s320/ProjectCreated.PNG" alt="" id="BLOGGER_PHOTO_ID_5153312084580609058" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0); font-weight: bold;"&gt;&lt;span style="font-size:85%;"&gt;Criando uma classe&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;Agora que temos um projeto poderemos criar uma classe. Para isto você deve seguir o caminho no menu principal: &lt;span style="font-style: italic;"&gt;File -&gt; New -&gt; Class&lt;/span&gt;. Observe a imagem adiante:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_OLi0EWdXe-4/R4RA85onrDI/AAAAAAAAAHg/3VL7GDaTt0k/s1600-h/newClass.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_OLi0EWdXe-4/R4RA85onrDI/AAAAAAAAAHg/3VL7GDaTt0k/s320/newClass.PNG" alt="" id="BLOGGER_PHOTO_ID_5153315288626211890" border="0" /&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;O nome da classe deve ser HelloWorld, do mesmo jeito que fizemos no &lt;a href="http://javaimediato.blogspot.com/2008/01/hora-do-hello-world.html"&gt;Post anterior&lt;/a&gt; quando criamos o arquivo chamado &lt;span style="color: rgb(51, 102, 255);"&gt;HelloWorld.java&lt;/span&gt;:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_OLi0EWdXe-4/R4RDuJonrEI/AAAAAAAAAHo/-uLsgtZ5w6U/s1600-h/creating_class.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_OLi0EWdXe-4/R4RDuJonrEI/AAAAAAAAAHo/-uLsgtZ5w6U/s320/creating_class.PNG" alt="" id="BLOGGER_PHOTO_ID_5153318333758024770" border="0" /&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;Após clicar em "Finish" a estrutura do projeto deverá ficar da seguinte maneira:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_OLi0EWdXe-4/R4S2tJonrFI/AAAAAAAAAHw/QZOk5ekH5Rw/s1600-h/HelloWorldAparition.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_OLi0EWdXe-4/R4S2tJonrFI/AAAAAAAAAHw/QZOk5ekH5Rw/s320/HelloWorldAparition.PNG" alt="" id="BLOGGER_PHOTO_ID_5153444760415349842" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;A primeira facilidade que o Eclipse nos oferece ao criar uma classe é fornecer seu cabeçalho. Desde já precisamos apenas criar o conteúdo da classe HelloWorld. Então digite o código a seguir entre as chaves - "&lt;span style="color: rgb(0, 0, 153);"&gt;{&lt;/span&gt;" e "&lt;span style="color: rgb(0, 0, 153);"&gt;}&lt;/span&gt;":&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: left;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;static&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;void&lt;/b&gt;&lt;/span&gt; main(String[] args) {&lt;br /&gt; System.out.println(&lt;span style="color: rgb(0, 0, 255);"&gt;"Hello World"&lt;/span&gt;);&lt;br /&gt; System.out.println(&lt;span style="color: rgb(0, 0, 255);"&gt;"Estou no Eclipse"&lt;/span&gt;);&lt;br /&gt;}&lt;/pre&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;O  código completo da classe  deve ser o seguinte:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;class&lt;/b&gt;&lt;/span&gt; HelloWorld {&lt;br /&gt;&lt;br /&gt; &lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;static&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;void&lt;/b&gt;&lt;/span&gt; main(String[] args) {&lt;br /&gt;&lt;br /&gt;  System.out.println(&lt;span style="color: rgb(0, 0, 255);"&gt;"Hello World"&lt;/span&gt;);&lt;br /&gt;  System.out.println(&lt;span style="color: rgb(0, 0, 255);"&gt;"Estou no Eclipse"&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;}&lt;/pre&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;        &lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;Para executar o código no Eclipse não precisamos mais acionar diretamente os comandos &lt;span style="font-style: italic;"&gt;javac &lt;/span&gt;e &lt;span style="font-style: italic;"&gt;java&lt;/span&gt;. O próprio Eclipse se encarrega disso. No tópico &lt;a href="http://javaimediato.blogspot.com/2007/12/entendendo-como-o-java-funciona-parte-2.html"&gt;Entendendo como o Java funciona - Parte 2&lt;/a&gt; entendemos que antes de gerar os &lt;span style="font-style: italic;"&gt;bytecodes,&lt;/span&gt; o compilador verifica se o código é compilável, isto é, o código não deve conter erros sintáticos ou semânticos, caso contrário a compilação falhará e a causa do erro deve ser exibida pelo &lt;span style="font-style: italic;"&gt;javac&lt;/span&gt;. Pois bem, de tempos em tempos o Eclipse se encarrega de chamar o &lt;span style="font-style: italic;"&gt;javac&lt;/span&gt; enquanto você digita seu código. &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;Você entendeu corretamente: enquanto você digita seu código, seu código está sendo compilado. Isto é permitido porque o javac é um compilador &lt;a href="http://pt.wikipedia.org/wiki/JIT"&gt;JIT&lt;/a&gt; - &lt;span style="font-style: italic;"&gt;Just-In-Time&lt;/span&gt;. Experimente digitar seu nome em qualquer trecho do código - exceto entre aspas dentro do comando &lt;span style="font-style: italic;"&gt;System.out.println()&lt;/span&gt;. O compilador o sublinhará com cor vermelha, informando que há um erro sintático no código ao você pôr o cursor do mouse sobre ele.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;Para executar seu programa, vá até o arquivo &lt;span style="color: rgb(51, 102, 255);"&gt;HelloWorld.java&lt;/span&gt; através do Eclipse, clique com o botão direito do mouse e siga o caminho: &lt;span style="font-style: italic;"&gt;Run As -&gt; Java Application&lt;/span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_OLi0EWdXe-4/R4WFrZonrGI/AAAAAAAAAH4/K-Vo56esosk/s1600-h/prerunning.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_OLi0EWdXe-4/R4WFrZonrGI/AAAAAAAAAH4/K-Vo56esosk/s320/prerunning.PNG" alt="" id="BLOGGER_PHOTO_ID_5153672329257528418" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;Em vez de usar a "tela preta" do Prompt do MS-DOS, agora você pode enxergar seu programa rodando através do console, dentro do próprio Eclipse.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_OLi0EWdXe-4/R4WG6ponrHI/AAAAAAAAAIA/KnavFdzChK8/s1600-h/helloWorldExecution.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_OLi0EWdXe-4/R4WG6ponrHI/AAAAAAAAAIA/KnavFdzChK8/s320/helloWorldExecution.PNG" alt="" id="BLOGGER_PHOTO_ID_5153673690762161266" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0); font-weight: bold;"&gt;&lt;span style="font-size:85%;"&gt;Hello World em outros IDEs&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;Se você não estiver usando o Eclipse, por favor, tente um dos links abaixo:&lt;br /&gt;&lt;br /&gt;NetBeans IDE  -  &lt;a href="http://www.netbeans.org/kb/55/quickstart_pt_BR.html"&gt;Clique aqui&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;JCreator - &lt;a href="http://www.cs.uga.edu/%7Ebennett/cs1301/how-toJavaJCreator.html"&gt;Clique aqui&lt;/a&gt; (em inglês)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0); font-weight: bold;"&gt;&lt;span style="font-size:85%;"&gt;Missão cumprida!&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;Espero que a execução do seu programa no Eclipse tenha obtido sucesso. Em Post posteriores certamente veremos mais dicas e particularidades do Eclipse, e do próprio Java, é claro.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Um abraço.&lt;br /&gt;&lt;br /&gt;Até a próxima&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4634980943732216641-6561822682864107425?l=javaimediato.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/JavaImediato-SeuTutorialJava/~3/klZK_zR72tM/hello-world-no-eclipse.html</link><author>noreply@blogger.com (andrehbl)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_OLi0EWdXe-4/R4Ql95onq5I/AAAAAAAAAGQ/AWoTOpPaDVk/s72-c/WORKSPACE.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://javaimediato.blogspot.com/2008/01/hello-world-no-eclipse.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4634980943732216641.post-1203843489688028205</guid><pubDate>Fri, 04 Jan 2008 02:39:00 +0000</pubDate><atom:updated>2008-12-10T14:19:40.925-08:00</atom:updated><title>[5] Hora do Hello World</title><description>&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0); font-weight: bold;"&gt;Hello World&lt;/span&gt;  &lt;span style="color: rgb(0, 51, 0);"&gt;&lt;br /&gt;&lt;br /&gt;Agora podemos escrever nosso primeiro programa em Java: o tradicional Hello World.  O código é bastante simples, mas se você não o entende não se preocupe, pois breve breve isso será possível. Copie o código abaixo, ele será útil:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;class&lt;/b&gt;&lt;/span&gt; HelloWorld {&lt;br /&gt;&lt;br /&gt; &lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;static&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(128, 0, 128);"&gt;&lt;b&gt;void&lt;/b&gt;&lt;/span&gt; main(String[] args) {&lt;br /&gt;  System.out.println(&lt;span style="color: rgb(0, 0, 255);"&gt;"Hello World"&lt;/span&gt;);&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;}&lt;/blockquote&gt;&lt;/pre&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Este é nosso primeiro programa. Como você já deve ter percebido, ele fará com que a mensagem "Hello World" apareça na tela do computador. Aprenderemos a executar este código de forma manual, isto é, sem auxílio de um IDE como Eclipse.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-weight: bold;"&gt;Executando o programa Hello World manualmente&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Siga os passos abaixo:&lt;/span&gt;&lt;/span&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Escolha um diretório no seu computador para escrever seu primeiro programa - neste exemplo usaremos &lt;span style="font-style: italic;"&gt;C:\&lt;/span&gt;&lt;span style="font-style: italic;"&gt;PrimeiroPrograma&lt;/span&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Dentro de&lt;span style="font-style: italic;"&gt; C:\PrimeiroPrograma&lt;/span&gt; crie um arquivo de texto com o nome &lt;span style="color: rgb(51, 102, 255);"&gt;HelloWorld&lt;/span&gt; que conterá o código do programa HelloWorld mostrado anteriormente;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Converta a extensão do seu arquivo de texto para extensão &lt;span style="font-style: italic;"&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;.java&lt;/span&gt;;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Abra o &lt;span style="font-style: italic;"&gt;&lt;a href="http://en.wikipedia.org/wiki/MS-DOS"&gt;Prompt do MS-DOS&lt;/a&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-style: italic;"&gt;Vá até o diretório C:\PrimeiroPrograma;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Agora você vai compilar seu código, como discutido no &lt;a href="http://javaimediato.blogspot.com/2007/12/entendendo-como-o-java-funciona-parte-2.html"&gt;Post anterior&lt;/a&gt;. Para isto você deverá invocar o &lt;span style="color: rgb(255, 0, 0);"&gt;javac&lt;/span&gt; - o compilador padrão do Java, e a sintaxe básica que precisamos para compilar nosso primeiro programa é a seguinte:     &lt;span style="color: rgb(255, 0, 0); font-style: italic;"&gt;javac &lt;nomedoseuarquivo.java&gt;&lt;/nomedoseuarquivo.java&gt;&lt;/span&gt;. Logo entraremos com o seguinte comando no &lt;span style="font-style: italic;"&gt;Prompt&lt;/span&gt;:   &lt;span style="color: rgb(255, 0, 0);"&gt; javac HelloWorld.java&lt;/span&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Note que no diretório &lt;span style="font-style: italic;"&gt;C:\PrimeiroPrograma&lt;/span&gt; foi gerado um nov&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;o arquivo: &lt;span style="font-style: italic; color: rgb(51, 102, 255);"&gt;HelloWorld.class&lt;/span&gt;. Um arquivo de extensão &lt;span style="color: rgb(51, 102, 255);"&gt;.class&lt;/span&gt; contém os &lt;span style="font-style: italic;"&gt;bytecodes &lt;/span&gt;gerados pelo compilador, que permitem que seu programa seja executado em diversas plataformas. Logo, para executarmos nosso programa, ainda no mesmo diretório, invocaremos o comando &lt;span style="color: rgb(255, 0, 0);"&gt;java&lt;/span&gt; &lt;span style="color: rgb(0, 51, 0);"&gt;para executarmos o &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;programa&lt;/span&gt;. Portanto entraremos com o comando:  &lt;span style="color: rgb(255, 0, 0);"&gt;java HelloWorld&lt;/span&gt;, para que o arquivo &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-style: italic; color: rgb(51, 102, 255);"&gt;HelloWorld.class &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;seja executado&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;A mensagem "Hello World" deve ser exibida com sucesso como na imagem abaixo:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_OLi0EWdXe-4/R36cuZonqzI/AAAAAAAAAFg/GUDqD76PO3U/s1600-h/java_javac.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_OLi0EWdXe-4/R36cuZonqzI/AAAAAAAAAFg/GUDqD76PO3U/s320/java_javac.png" alt="" id="BLOGGER_PHOTO_ID_5151727344727599922" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Já que aprendemos a compilar e a executar nosso primeiro programa manualmente e termos aprendido melhor sobre como funcionam as etapas para execução de um programa Java - discutidas no &lt;a href="http://javaimediato.blogspot.com/2007/12/entendendo-como-o-java-funciona-parte-2.html"&gt;Post anterior&lt;/a&gt;, de agora por diante executaremos nossos códigos com base no IDE Eclipse.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;RESUMO:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;   * Você aprendeu a executar seu primeiro programa em Java manualmente&lt;br /&gt;* Você aprendeu que o código fonte deve ser digitado em um arquivo de extensão &lt;span style="font-style: italic;"&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;.java&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;* Você também aprendeu que os bytecodes são armazenados em u&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;m arquivo de extensão &lt;span style="font-style: italic; color: rgb(51, 102, 255);"&gt;.class&lt;/span&gt;, e é o arquivo de extensão &lt;span style="color: rgb(51, 102, 255);"&gt;.class&lt;/span&gt; que deve ser executado pela JVM&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-weight: bold;"&gt;EXERCÍCIOS:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;br /&gt;1. Exibir mais de uma frase na execução do programa;&lt;br /&gt;2. Compilar e executar mais de um programa Java, ou seja, não se prender somente ao arquivo HelloWorld.java;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;DICA DO EXERCÍCIO:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;   &lt;/span&gt;&lt;/span&gt;Se você criar um novo arquivo de extensão .java com o nome  Programa, por exemplo, você deve modificar seu código.  No caso do código HelloWorld exibido no início do Post precisaríamos modificar o código&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;span style="color:#800080;"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#800080;"&gt;&lt;b&gt;class&lt;/b&gt;&lt;/span&gt; HelloWorld {&lt;br /&gt;&lt;br /&gt; &lt;span style="color:#800080;"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#800080;"&gt;&lt;b&gt;static&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#800080;"&gt;&lt;b&gt;void&lt;/b&gt;&lt;/span&gt; main(String[] args) {&lt;br /&gt;  System.out.println(&lt;span style="color:#0000ff;"&gt;"Hello World"&lt;/span&gt;);&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;}&lt;/pre&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;br /&gt;para&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;span style="color:#800080;"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#800080;"&gt;&lt;b&gt;class&lt;/b&gt;&lt;/span&gt; Programa {&lt;br /&gt;&lt;br /&gt; &lt;span style="color:#800080;"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#800080;"&gt;&lt;b&gt;static&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#800080;"&gt;&lt;b&gt;void&lt;/b&gt;&lt;/span&gt; main(String[] args) {&lt;br /&gt;  System.out.println(&lt;span style="color:#0000ff;"&gt;"Uma outra mensagem qualquer"&lt;/span&gt;);&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;}&lt;/pre&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;br /&gt;&lt;br /&gt;Este Post fica por aqui.  Parabéns pelo seu primeiro programa, resolva os exercícios e fique atento aos próximos Posts do Java Imediato.&lt;br /&gt;&lt;br /&gt;Um abraço&lt;/span&gt;&lt;/span&gt;&lt;img src="file:///C:/DOCUME%7E1/PROGRA%7E1/CONFIG%7E1/Temp/moz-screenshot.jpg" alt="" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4634980943732216641-1203843489688028205?l=javaimediato.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/JavaImediato-SeuTutorialJava/~3/5HHX6Jbdi40/hora-do-hello-world.html</link><author>noreply@blogger.com (andrehbl)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_OLi0EWdXe-4/R36cuZonqzI/AAAAAAAAAFg/GUDqD76PO3U/s72-c/java_javac.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://javaimediato.blogspot.com/2008/01/hora-do-hello-world.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4634980943732216641.post-3590985631773908905</guid><pubDate>Tue, 25 Dec 2007 05:32:00 +0000</pubDate><atom:updated>2008-12-10T14:19:41.592-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">JRE</category><category domain="http://www.blogger.com/atom/ns#">JVM</category><category domain="http://www.blogger.com/atom/ns#">jdk</category><category domain="http://www.blogger.com/atom/ns#">javac</category><title>[4] Entendendo como o Java funciona - PARTE 2 de 2</title><description>&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;&lt;span style="color: rgb(51, 51, 0);font-size:85%;" &gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Máquina Virtual Java - Java Virtual Machine (JVM)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;Não se pode falar em portabilidade do Java sem envolver o principal aliado da linguagem: sua máquina virtual. A Máquina Virtual Java - ou JVM -  permite que Java seja uma linguagem multiplataforma, isto é, permite que o conceito &lt;span style="font-style: italic;"&gt;Write Once, Run Everywhere&lt;/span&gt; seja aplica&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;do à prática - com as restrições que vimos no Post anterior, é claro.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;Para que você compreenda um pouco sobre o funcionamento da JVM, é necessário que tenha ao menos um conhecimento superficial sobre qual a utilidade de um &lt;a href="http://pt.wikipedia.org/wiki/Compilador"&gt;compilador&lt;/a&gt;. Se voc&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;ê é programador de primeira viagem, não se preocupe. Faremos uma breve explanação para que comecemos a entender como um compilador e a JVM funciona.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;&lt;span style="color: rgb(51, 51, 0);font-size:85%;" &gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Compilador&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;Imagine que a terra foi invadida por alienígenas, e desde então 5 &lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;anos se passaram. Logo, alguns poucos seres humanos adquiriram a habilidade de se comunicar, via escrita, em idioma terráqueo e em idioma alienígena. Se comunicar diretamente com um alienígena não era uma tarefa fácil, pois mesmo na forma escrita, a comunicação era bastante complexa para seres humanos. Desde já, a ajuda dos tradutores era indispensável para uma boa comunica&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;ção entre uma pessoa e um e.t.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;Os tradutores são exigentes. Mesmo para uma simples frase que você queira enviar para um alenígena, eles além de exigirem que você escreva corretamente as palav&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;ras, exigem também que você obedeça a um conjunto de reg&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;ras &lt;a href="http://pt.wikipedia.org/wiki/Sem%C3%A2ntica"&gt;semânticas&lt;/a&gt; pré-estabelecidas para qu&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;e a tradução seja bem sucedida.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;Se queremos enviar uma mensagem para alguém devemos tornar esta mensagem entendível para o receptor, para que este compreenda o que queremos dizer. &lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;Como todo&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;s sabemos, para se enviar uma mensagem, não basta escrever corretamente, mas também escrever de forma que você consiga se expassar a mensagem que você quer. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;Para nos comunicarmos com um computador, precisamos da &lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;ajuda de um tradutor - como na pequena ficção acima. A este tradutor chamamos de &lt;span style="font-weight: bold;"&gt;compilador&lt;/span&gt;. Uma &lt;a href="http://pt.wikipedia.org/wiki/Linguagem_de_programa%C3%A7%C3%A3o"&gt;lingu&lt;/a&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;&lt;a href="http://pt.wikipedia.org/wiki/Linguagem_de_programa%C3%A7%C3%A3o"&gt;agem de programação&lt;/a&gt; permite que os programadores enviem  instruções para os computa&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;dores de uma maneira mais amigável, mais entendível aos seres humanos. Porém, os computadores não entendem o que está escrito de forma "amigável" aos seres humanos, pois eles possuem sua própria linguagem, a &lt;a href="http://pt.wikipedia.org/wiki/Linguagem_de_programa%C3%A7%C3%A3o_de_segunda_gera%C3%A7%C3%A3o"&gt;linguagem de máquina&lt;/a&gt;.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;Observe a figura abaixo:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_OLi0EWdXe-4/R3aOf5onqxI/AAAAAAAAAFQ/z3tetHn_vAU/s1600-h/COMPILATION_PROCCESS_CLASSICAL.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_OLi0EWdXe-4/R3aOf5onqxI/AAAAAAAAAFQ/z3tetHn_vAU/s320/COMPILATION_PROCCESS_CLASSICAL.png" alt="" id="BLOGGER_PHOTO_ID_5149459902643022610" border="0" /&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;        * Na etapa 1, seu código, de uma linguagem de programação qualquer, foi digitado e está disponível para                ser compilado por um compilador da linguagem em questão.&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;&lt;br /&gt;      * Na etapa 2, seu código-fonte será convertido em código de máquina pelo compilador, e este estará                        pronto para ser executado em um determinado Sistema Operacional.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;&lt;span style="color: rgb(51, 51, 0);font-size:85%;" &gt;&lt;span style="color: rgb(0, 51, 0);"&gt;O compilador da linguagem Java&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;O JDK inclui o compila&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;dor da linguagem, que podemos chamá-lo de &lt;span style="font-style: italic;"&gt;javac&lt;/span&gt;. Porém, em vez de trabalhar como os compiladores usuais, melhor dizendo, em vez de con&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;verter o código-fonte diretamente em código de máquina, o &lt;span style="font-style: italic;"&gt;javac &lt;/span&gt;o converte em &lt;span style="font-style: italic;"&gt;&lt;a href="http://pt.wikipedia.org/wiki/Bytecode"&gt;bytecodes&lt;/a&gt;, &lt;/span&gt;que são códigos que não serão executados dir&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;etamente pelo processador de uma máquina, mas por uma máquina virtual.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;&lt;br /&gt;Supondo que você queira executar um programa Java cujo código esteja escrito em um único arquivo, observe o esquema abaixo para compreender o percurso &lt;span style="font-style: italic; font-weight: bold;"&gt;escrita do código --&gt; execução&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_OLi0EWdXe-4/R3aPCZonqyI/AAAAAAAAAFY/s3euvMiSbkA/s1600-h/JVM_COMPILATION.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_OLi0EWdXe-4/R3aPCZonqyI/AAAAAAAAAFY/s3euvMiSbkA/s320/JVM_COMPILATION.png" alt="" id="BLOGGER_PHOTO_ID_5149460495348509474" border="0" /&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;         * Na etapa 1, seu código foi digitado e está disponível para ser compilado.&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;&lt;br /&gt;&lt;br /&gt;       * Na etapa 2, o &lt;span style="font-style: italic;"&gt;javac - &lt;/span&gt;compilador da linguagem Java -&lt;span style="font-style: italic;"&gt; &lt;/span&gt;foi acionado, e este por sua vez verificará, como                 todo compilador, se o código está escrito corretamente, ou seja, se o código é compilável. Estando o                     código sem erro sintático ou semântico algum, este será convertido em &lt;span style="font-style: italic;"&gt;bytecodes&lt;/span&gt;, que serão                                 interpretados pela JVM. Caso contrário o processo de compilação &lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;será interrompido e o motivo da                     interrupção deverá ser exibido.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;       *  Na etapa 3, a Máquina Virtual Java - JVM - se encarrega de &lt;a href="http://pt.wikipedia.org/wiki/Linguagem_de_computador_interpretada"&gt;interpretar&lt;/a&gt; os &lt;span style="font-style: italic;"&gt;bytecodes&lt;/span&gt; gerados pelo &lt;span style="font-style: italic;"&gt;javac&lt;/span&gt;             para que seu código seja executado. No caso da plataforma &lt;a href="http://pt.wikipedia.org/wiki/Java_SE"&gt;J2SE&lt;/a&gt;, o código compilado neste exemplo                     deverá rodar em Windows, Linux e Solaris.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_OLi0EWdXe-4/R3XOoZonqtI/AAAAAAAAAEw/T3_tvfB-jgY/s1600-h/INTERROGACAO.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_OLi0EWdXe-4/R3XOoZonqtI/AAAAAAAAAEw/T3_tvfB-jgY/s320/INTERROGACAO.png" alt="" id="BLOGGER_PHOTO_ID_5149248942439377618" border="0" /&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;&lt;span style="color: rgb(51, 51, 0);font-size:85%;" &gt;&lt;span style="color: rgb(0, 51, 0);"&gt;NÃO ENTENDEU PARA QUÊ SERVEM OS BYTECODES E A JVM?&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0); font-weight: bold;"&gt;&lt;span style="color: rgb(51, 51, 0);font-size:85%;" &gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="color: rgb(0, 51, 0); font-weight: bold;"&gt;&lt;span style="color: rgb(51, 51, 0);font-size:85%;" &gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Não se preocupe. O esquema mostrado acima reflete a capacidade multiplataforma do Java. Veja, uma vez que um código-fonte Java é compilado, este é transformado em &lt;span style="font-style: italic;"&gt;bytecodes&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;&lt;span style="color: rgb(51, 51, 0);font-size:85%;" &gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-style: italic;"&gt;. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="color: rgb(51, 51, 0);font-size:85%;" &gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-weight: bold;"&gt;E estes &lt;span style="font-style: italic;"&gt;bytecodes &lt;/span&gt;são códigos independentes de plataforma, isto é, os &lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;bytecodes &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;gerados pelo javac podem ser interpretados por uma JVM do Linux, uma JVM do Windows, ou outra JVM de outro &lt;/span&gt;&lt;a style="font-weight: bold;" href="http://pt.wikipedia.org/wiki/Sistema_operativo"&gt;SO&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;. A função da JVM é executar os &lt;span style="font-style: italic;"&gt;bytecodes &lt;/span&gt;em uma determinada plataforma, melhor dizendo, não importa em que Sistema Operacional os &lt;span style="font-style: italic;"&gt;bytecodes &lt;/span&gt;foram gerados, porém, se seu programa pr&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="color: rgb(51, 51, 0);font-size:85%;" &gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-weight: bold;"&gt;ecisa rodar em uma máquina com SO Linux, esta máquina deve possuir uma JVM instalada para que a mesma possa interpretar os &lt;span style="font-style: italic;"&gt;bytecodes &lt;/span&gt;e executar o programa neste computador.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;&lt;span style="color: rgb(51, 51, 0);font-size:85%;" &gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Java é uma linguagem compilada ou interpretada?&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;Java é uma linguagem &lt;span style="font-weight: bold;"&gt;compilada&lt;/span&gt; por ter seu código compilado antes de ser executado. E Java também é uma linguagem&lt;span style="font-weight: bold;"&gt; interpretada &lt;/span&gt;por ter seus &lt;span style="font-style: italic;"&gt;bytecodes&lt;/span&gt; interpretados por uma máquina virtual.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;&lt;span style="color: rgb(51, 51, 0);font-size:85%;" &gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Entendendo o que é JRE&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;Para desenvolver seu programa Java com certeza você teve de baixar o JDK, correto? O JDK é um kit completo para desenvolvimento, que inclui uma máquina virtual - JVM; um compilador - que acabamos de abordar; uma imensa e rica &lt;a href="http://pt.wikipedia.org/wiki/API"&gt;API&lt;/a&gt; e toda sua documentação.&lt;br /&gt;&lt;br /&gt;Imagine que você queira distribuir sua aplicação para 10 clientes, todos eles com diferentes máquinas e diferentes Sistemas Operacionais. De imediato você pode pensar:&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;"não há problemas. Em cada máquina eu instalo uma JVM para rodar meu programa e problema resolvido.".&lt;br /&gt;&lt;br /&gt;Este tipo de pensamento está correto, porém um pouco ingênuo. Lembre-se de que a JVM é apenas um complemento do JDK. Daí outra idéia pode surgir:&lt;br /&gt;&lt;br /&gt;"se a JVM é um complemento do JDK, então vou instalar o JDK nas máquinas de todos os clientes."&lt;br /&gt;&lt;br /&gt;Se você pensou assim, parabéns! Esta é uma solução, mas infelizmente não é a mais eficiente. O motivo é simples: você por acaso se lembra de quantos &lt;span style="font-style: italic;"&gt;megabytes&lt;/span&gt;, aproximadamente, são o instalador do JDK? Nada minúsculo, não é? E por acaso você já verificou o tamanho do Java já instalado no seu computador? Algo perto de 200 MB, no caso do Java 5. Porém, há um detalhe que não foi citado ainda: a instalação do JDK implica também na instalação do &lt;a href="http://pt.wikipedia.org/wiki/Java_Runtime_Environment"&gt;JRE&lt;/a&gt; - &lt;span style="font-style: italic;"&gt;Java Runtime Environment&lt;/span&gt;. O JRE é tudo o que você precisa instalar nas máquinas dos 10 clientes. E o melhor é que o JRE pode ser baixado e instalado individualme&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;nte, sem a necessidade instalar também o JDK. O peso do JRE é muito inferior ao peso do JDK. Desde já é mais vantajoso instalá-lo nas máquinas que irão rodar seu programa, em vez de instalar o JDK inteiro. Seria um desperdício de memória instalar um Kit completo de desenvolvimento de programas Java em máquinas que deveriam apenas executar um programa Java.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;&lt;span style="color: rgb(51, 51, 0);font-size:85%;" &gt;&lt;span style="color: rgb(0, 51, 0);"&gt;JRE em Websites&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;Talvez algum dia você se depare com um website que requeira exibir um Applet. Se você não tiver uma JRE instalada, você não conseguirá executá-lo em seu browser. A partir do momento em que você instala o JDK ou o JRE, automaticamente os plugins do JRE são instalados em alguns browsers.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_OLi0EWdXe-4/R3Z5rJonqvI/AAAAAAAAAFA/LlSY3dj0Hjs/s1600-h/EXCLAMACAO.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_OLi0EWdXe-4/R3Z5rJonqvI/AAAAAAAAAFA/LlSY3dj0Hjs/s320/EXCLAMACAO.png" alt="" id="BLOGGER_PHOTO_ID_5149437006172367602" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;&lt;span style="color: rgb(51, 51, 0);font-size:85%;" &gt;&lt;span style="color: rgb(0, 51, 0);"&gt;ATENÇÃO!&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;&lt;br /&gt;Lembre-se de que o Java tem várias versões, e a cada nova versão ele &lt;span style="font-weight: bold;"&gt;inclui&lt;/span&gt; novos recursos e &lt;span style="font-weight: bold;"&gt;mantém&lt;/span&gt;* os recursos da versão anterior. Então, se os &lt;span style="font-style: italic;"&gt;bytecodes&lt;/span&gt; possuem código do Java 5, estes deverão ser interpretados por uma JRE do Java 5 ou superior. Não é possível executar um código de Java 5 em uma JRE 1.4 ou inferior. E assim será também para as versões posteriores.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;* ao decorrer das versões alguns recursos são &lt;a href="http://pt.wikipedia.org/wiki/Deprecia%C3%A7%C3%A3o"&gt;depreciados&lt;/a&gt; - em inglês: deprecated - por terem se tornado obsoletos.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;Bem, este Post encerra por aqui. Breve breve estaremos aprendendo a escrever e executar nosso primeiro programa .&lt;br /&gt;&lt;br /&gt;Tenha um bom dia.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4634980943732216641-3590985631773908905?l=javaimediato.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/JavaImediato-SeuTutorialJava/~3/LH56FQ0cS18/entendendo-como-o-java-funciona-parte-2.html</link><author>noreply@blogger.com (andrehbl)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_OLi0EWdXe-4/R3aOf5onqxI/AAAAAAAAAFQ/z3tetHn_vAU/s72-c/COMPILATION_PROCCESS_CLASSICAL.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://javaimediato.blogspot.com/2007/12/entendendo-como-o-java-funciona-parte-2.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4634980943732216641.post-1656789006747617968</guid><pubDate>Thu, 20 Dec 2007 00:54:00 +0000</pubDate><atom:updated>2008-02-06T08:59:28.435-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">porting</category><category domain="http://www.blogger.com/atom/ns#">cross-platform</category><category domain="http://www.blogger.com/atom/ns#">portabilidade</category><title>[3] Entendendo como o Java funciona - PARTE 1 de 2</title><description>&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;&lt;span style="color: rgb(51, 51, 0);font-size:85%;" &gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Java, uma linguagem multiplataforma (&lt;/span&gt;&lt;span style="font-style: italic; color: rgb(0, 51, 0);"&gt;cross-platform&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;Você provavelmente já ouviu falar que Java é uma linguagem multiplataforma. Antes do seu nascimento como linguagem de programação, seus &lt;a href="http://pt.wikipedia.org/wiki/James_Gosling"&gt;criadores&lt;/a&gt;, visando o futuro, planejavam um projeto que interligaria computadores a outros equipamentos eletrônicos freqüentemente utilizados pelas pessoas, tais como: televisores, geladeiras, controles remotos, etc. Tal projeto resultou na criação de uma linguagem baseada em &lt;a href="http://pt.wikipedia.org/wiki/C++"&gt;C++&lt;/a&gt;, a linguagem Oak. Isso mesmo, Oak era o nome da linguagem Java até descobrirem que já existia uma linguagem de programação com tal nome.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;O grande lema da linguagem Java é: &lt;span style="font-style: italic;"&gt;Write once, run everywhere! &lt;/span&gt;- &lt;span style="font-style: italic;"&gt;Escreva uma vez, rode em qualquer lugar&lt;/span&gt;. E seu lema não é esse por acaso, pois seu significado teórico defende que uma vez que um programa foi escrito na linguagem Java, este programa pode ser executado em &lt;span style="font-weight: bold;"&gt;qualquer &lt;/span&gt;aparelho eletrônico que suporte Java, seja ele um celular, uma torradeira ou até mesmo um tênis - quem sabe um dia. Porém, infelizmente não é assim que funciona na prática. Java é uma linguagem multiplataforma, mas não de forma tão genérica como seria o ideal.&lt;br /&gt;&lt;br /&gt;Como foi dito no &lt;a href="http://javaimediato.blogspot.com/2007/12/dsfsdf.html"&gt;primeiro Post&lt;/a&gt; do Java Imediato, Java se divide em 3 edições: J2SE, J2EE e J2ME. Em uma breve explanação sobre cada uma delas foi afirmado que a plataforma J2ME é voltada para dispositivos de memória limitada em relação aos PCs. Pare e pense sobre quantos dispositivos eletrônicos &lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;de alta tecnologia com &lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;"memória limitada" existem no mundo à fora hoje e quantos novos mais existirão daqui a alguns meses ou anos. Sem falar que a maior parte desses dispositivos possuem diferentes implementações, diferentes limitações, diferentes Sistemas Operacionais, etc. Já pensou que loucura seria desenvolver um código totalmente específico para cada um desses dispositivos? A palavra-chave para a solução deste problema chama-se&lt;span style="font-weight: bold;"&gt; portabilidade&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Java é uma linguagem portável, isto é, o código-fonte de uma aplicação Java escrita para uma plataforma específica pode ser utilizado também para uma outra plataforma. Em outras palavras, vamos supor que você construiu um jogo para o celular Nokia 6600, e que você também deseja que seu jogo funcione em um celular Sony Ericsson K310i. Não será necessário que você reescreva completamente o jogo para que ele funcione em outro celular. A solução para este problema seria &lt;span style="font-weight: bold;"&gt;reutilizar&lt;/span&gt; o código original, realizando alguns ajustes como tamanho da tela - &lt;span style="font-style: italic;"&gt;pois ambos possuem tamanhos de tela diferentes&lt;/span&gt; -, os sons a serem tocados - &lt;span style="font-style: italic;"&gt;esses dois celulares podem não conseguir reproduzir o mesmo formato de som&lt;/span&gt;-, etc. Portanto perceba desde já  o porquê de Java não ser genericamente multiplataforma, pois de plataforma para plataforma geralmente há uma mínima diferença entre elas, que "obrigam" o programador a fazer pequenas &lt;a href="http://pt.wikipedia.org/wiki/Portabilidade_%28inform%C3%A1tica%29"&gt;adaptações&lt;/a&gt; no seu aplicativo.&lt;br /&gt;&lt;br /&gt;Assim como para dispositivos móveis, o conceito multiplataforma para &lt;span style="font-style: italic;"&gt;Desktops &lt;/span&gt;também existe. Ou seja, uma vez que seu aplicativo &lt;span style="font-style: italic;"&gt;Desktop&lt;/span&gt; é escrito&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;, &lt;/span&gt;&lt;/span&gt;é possível que ele rode nos Sistemas Operacionais Windows, &lt;a href="http://pt.wikipedia.org/wiki/Mac_OS_X"&gt;Mac OS&lt;/a&gt;, &lt;a href="http://pt.wikipedia.org/wiki/Linux"&gt;Linux&lt;/a&gt; e &lt;a href="http://pt.wikipedia.org/wiki/Solaris"&gt;Solaris&lt;/a&gt;. Porém, dependendo da situação, seu programa talvez precise sofrer alterações para que&lt;br /&gt;ele funcione como esperado em todos os SO's - Sistemas Operacionais.&lt;br /&gt;&lt;br /&gt;Bem, este é o fim da parte 1 do tópico &lt;span style="font-weight: bold;"&gt;Entendendo como o Java funciona&lt;/span&gt;. Próximo Post vamos entender melhor como o Java torna possível esta "mágica" da portabilidade.&lt;br /&gt;&lt;br /&gt;Só para complemento, se você quer saber mais sobre J2ME, pode procurar pelo livro &lt;span style="font-style: italic;"&gt;Programação JAVA para WIRELESS&lt;/span&gt;, de &lt;span style="font-style: italic;"&gt;Érico Tavares de Mattos &lt;/span&gt;pela editora &lt;span style="font-style: italic;"&gt;Digerati&lt;/span&gt;. O livro faz uma ótima explanação sobre as características do J2ME, além de também ensinar a como programar nesta plataforma.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Um abraço. Até a próxima&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4634980943732216641-1656789006747617968?l=javaimediato.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/JavaImediato-SeuTutorialJava/~3/Qz1hdN8MvG0/entendendo-como-o-java-funciona-parte-1.html</link><author>noreply@blogger.com (andrehbl)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://javaimediato.blogspot.com/2007/12/entendendo-como-o-java-funciona-parte-1.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4634980943732216641.post-2003948985760305272</guid><pubDate>Wed, 12 Dec 2007 02:46:00 +0000</pubDate><atom:updated>2008-12-10T14:19:43.880-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">variável sistema</category><category domain="http://www.blogger.com/atom/ns#">eclipse</category><category domain="http://www.blogger.com/atom/ns#">variável ambiente</category><category domain="http://www.blogger.com/atom/ns#">instalação java</category><category domain="http://www.blogger.com/atom/ns#">jdk</category><category domain="http://www.blogger.com/atom/ns#">instalação eclipse</category><title>[2] Configurando o Java e o Eclipse</title><description>&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;Olá! Neste Post vamos aprender como configurar o Java no ambiente Windows e o que fazer para iniciar o Eclipse. São passos simples e rápidos. Vamos lá?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;Configurando&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt; o Java&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;Como você pôde perceber, não há mistérios na instalação do SDK do Java no Windows. Sua instalação quase que é apenas Next, Next, Next... porém, é necessário fazer uma configuraçã&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;o antes de você iniciar sua Jornada Java. Mais uma vez não há mistérios. Faça os passos abaixo:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;No ícone Meu Computador - que deve estar no seu desktop ou na barra de tarefas, abra suas propriedades - clique com botão direito em cima do ícone -&gt; Propriedades:&lt;/span&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_OLi0EWdXe-4/R19SCiU2BJI/AAAAAAAAACg/azV-8e6T4Jo/s1600-h/MeuComputadorPropriedades.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_OLi0EWdXe-4/R19SCiU2BJI/AAAAAAAAACg/azV-8e6T4Jo/s320/MeuComputadorPropriedades.png" alt="" id="BLOGGER_PHOTO_ID_5142919503007843474" border="0" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;A seguir, clique na aba "Avançado" e logo em seguida clique em "Variáveis de Ambiente":&lt;/span&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_OLi0EWdXe-4/R19WFyU2BMI/AAAAAAAAAC4/1dC3tNtMXVM/s1600-h/MeuComputadorAvancado.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_OLi0EWdXe-4/R19WFyU2BMI/AAAAAAAAAC4/1dC3tNtMXVM/s320/MeuComputadorAvancado.png" alt="" id="BLOGGER_PHOTO_ID_5142923956888929474" border="0" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Em "Variáveis de ambiente", clique no botão "Nova" no grupo das variáveis do sistema:&lt;/span&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_OLi0EWdXe-4/R19XkyU2BOI/AAAAAAAAADI/ic9dxbsNDFE/s1600-h/MeuComputadorVarAmbiente.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_OLi0EWdXe-4/R19XkyU2BOI/AAAAAAAAADI/ic9dxbsNDFE/s320/MeuComputadorVarAmbiente.png" alt="" id="BLOGGER_PHOTO_ID_5142925588976501986" border="0" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Dê o nome "JAVA_HOME" à nova variável de sistema como seu valor e especifique o diretório de instalação do seu JDK:&lt;/span&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_OLi0EWdXe-4/R19YcCU2BPI/AAAAAAAAADQ/ufRuYQHZ_6k/s1600-h/MeuComputadoCreateNewVar.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_OLi0EWdXe-4/R19YcCU2BPI/AAAAAAAAADQ/ufRuYQHZ_6k/s320/MeuComputadoCreateNewVar.png" alt="" id="BLOGGER_PHOTO_ID_5142926538164274418" border="0" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Após a criação da variável JAVA_HOME, ainda no grupo de variáveis do sistema, procure pela variável "&lt;span style="font-style: italic;"&gt;Path&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt; e clique em "Editar":&lt;/span&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_OLi0EWdXe-4/R19ZaiU2BQI/AAAAAAAAADY/QRRY35VILM8/s1600-h/MeuComputadorEditandoPath.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_OLi0EWdXe-4/R19ZaiU2BQI/AAAAAAAAADY/QRRY35VILM8/s320/MeuComputadorEditandoPath.png" alt="" id="BLOGGER_PHOTO_ID_5142927611906098434" border="0" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Após o último&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt; ponto-e-vírgula, aponte para a pasta "bin" do JDK instalado na sua máquina:&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_OLi0EWdXe-4/R19adyU2BRI/AAAAAAAAADg/Hdk2HG6iu5s/s1600-h/MeuComputadorEditandoPath2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_OLi0EWdXe-4/R19adyU2BRI/AAAAAAAAADg/Hdk2HG6iu5s/s320/MeuComputadorEditandoPath2.png" alt="" id="BLOGGER_PHOTO_ID_5142928767252301074" border="0" /&gt;&lt;/a&gt;&lt;div style="text-align: left;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_OLi0EWdXe-4/R19d2SU2BTI/AAAAAAAAADw/TsoeU02f6Qo/s1600-h/INTERROGACAO.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_OLi0EWdXe-4/R19d2SU2BTI/AAAAAAAAADw/TsoeU02f6Qo/s320/INTERROGACAO.png" alt="" id="BLOGGER_PHOTO_ID_5142932486693979442" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;Não entendeu bem como o passo 6 funciona? Tudo bem. Supomos que no campo "Valor da variável" existisse o valor: "C:\oracle\bin; C:\System32\sys;". Logo, adicionando o diretório da pasta "bin" do seu JDK no campo "Valor da variável", seu novo valor seria: "C:\oracle\bin; C:\S&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;ystem32\sys; C:\Arquivos de Programas\Java\jdk1.5.0\bin;". Cada variável é separada pelo delimitador ponto-e-vírgula ";".&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Bem, seguindo os passos anteriores, você acabou de configurar o Java para o deixar pronto para uso. Para conferir se a instalação foi bem sucedida, abra uma janela do Prompt do MS-DOS e digite "Java" &lt;/span&gt;&lt;enter&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;. Uma tela semelhante a essa deve ser exibida:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/enter&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_OLi0EWdXe-4/R19gySU2BUI/AAAAAAAAAD4/lvHyNMJbnqs/s1600-h/PromptJAVA.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_OLi0EWdXe-4/R19gySU2BUI/AAAAAAAAAD4/lvHyNMJbnqs/s320/PromptJAVA.png" alt="" id="BLOGGER_PHOTO_ID_5142935716509386050" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Se o Prompt do MS-DOS não reconhecer o comando "Java", verifique se os passos descritos anteriormente foram executados corretamente. Se o problema persistir, tente reiniciar sua máquina.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;Executando o Eclipse&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Seu Eclipse veio em forma de arquivo .zip, correto? Você o abre e encontra apenas uma pasta chamada "Eclipse". Você a abre e encontra mais pastas, alguns arquivos e nenhum instalador. Você não baixou o arquivo errado, tá? A explicação para isso é que o Eclipse não precisa&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt; ser instalado através de um &lt;span style="font-style: italic;"&gt;Setup&lt;/span&gt;, como de costume. Para começar a usá-lo, transfira a pasta "Eclipse" que está dentro do arquivo .zip para algum local do seu computador e abra o executável &lt;span style="font-style: italic;"&gt;Eclipse.exe&lt;/span&gt;. Sugestão: arraste-a para o diretório raiz de sua unidade de disco. Exemplo: "C:\".&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;Não sei se foi seu caso, mas muitas pessoas tentam executar o Eclipse antes de configurar o Java corretamente - passos anteriores. O resultado é uma bela mensagem de erro e uma "não-execução do Eclipse".&lt;br /&gt;&lt;br /&gt;Ao abrir o Eclipse, a primeira tela exibida é chamada "Workspace Launcher". Como será explicado posteriormente em outro Post, esta tela exige que você especifique o seu&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt; "local de trabalho" para que você construa e manipule seus projetos. Você pode usar um diretório já existente ou criar um novo, fica a seu gosto. Você pode criar quantos &lt;span style="font-style: italic;"&gt;Workspaces &lt;/span&gt;você quiser.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_OLi0EWdXe-4/R19lTSU2BVI/AAAAAAAAAEA/Lro3XqLmA8I/s1600-h/WORKSPACE.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_OLi0EWdXe-4/R19lTSU2BVI/AAAAAAAAAEA/Lro3XqLmA8I/s320/WORKSPACE.png" alt="" id="BLOGGER_PHOTO_ID_5142940681491580242" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Com relação a configuração do ambiente Java e da IDE Eclipse, encerramos por aqui. No próximo Post vamos nos aprofundar um pouco sobre a linguagem Java para entendermos o porquê de algumas coisas que fizemos até o momento e de algumas coisas que faremos.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;br /&gt;Um abraço&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4634980943732216641-2003948985760305272?l=javaimediato.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/JavaImediato-SeuTutorialJava/~3/YVqkAB_ClUo/configurando-o-java-e-o-eclipse.html</link><author>noreply@blogger.com (andrehbl)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_OLi0EWdXe-4/R19SCiU2BJI/AAAAAAAAACg/azV-8e6T4Jo/s72-c/MeuComputadorPropriedades.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://javaimediato.blogspot.com/2007/12/configurando-o-java-e-o-eclipse.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4634980943732216641.post-1809609968665732594</guid><pubDate>Sun, 09 Dec 2007 03:46:00 +0000</pubDate><atom:updated>2008-12-10T14:19:44.586-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">j2se</category><category domain="http://www.blogger.com/atom/ns#">tutorial java</category><category domain="http://www.blogger.com/atom/ns#">java tiger</category><category domain="http://www.blogger.com/atom/ns#">iniciante</category><title>[1] Bem vindo ao Java</title><description>&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;Bem, se você é "Javeiro" de primeira viagem, você está no lugar certo. Neste Post vamos aprender um pouco sobre a tão famosa linguagem Java.&lt;br /&gt;&lt;br /&gt;Java é uma linguagem de programação bastante saudável de se aprender, porém vai exigir de você um bom esforço para que você a domine, assim como toda linguagem. &lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;O que eu recomendo para que seus estudos Java dêem certo: um bom livro, internet, fazer perguntas - muitas perguntas - e pôr os neurônios para trabalhar em frente a um computador - ou até mesmo deitado na cama, quem sabe.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;Algo que você precisa saber é que o Java em si se divide em três edições diferentes: J2SE, J2ME e J2EE. Todos as três são centradas em objetivos diferentes, são eles:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul style="color: rgb(0, 51, 0);"&gt;&lt;li&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;J2SE (Java 2 Standard Edition) : &lt;/span&gt;&lt;span style="font-size:85%;"&gt;destinado a aplicações desktop, das mais simples como um programinha que gerencia cadastros de pessoas em uma aca&lt;/span&gt;&lt;span style="font-size:85%;"&gt;demia de ginástica, até as mais complexas como: jogos 3D, chats, editores gráficos, etc.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul style="color: rgb(0, 51, 0);"&gt;&lt;li&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;J2ME (Java 2 Micro Edition): &lt;/span&gt;&lt;span style="font-size:85%;"&gt;bem, se a tecnologia do seu celular é &lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;GSM&lt;/span&gt;&lt;span style="font-size:85%;"&gt;, você provavelmente já jogou alguns joguinhos nele, não!? Pois é, existe 98% &lt;/span&gt;&lt;span style="font-size:85%;"&gt;de chance de que o jogo que você jogou foi criado com tecnologia J2ME. Esta edição do Java é destinada não só para celulares, mas para "pequenos dispositivos" em geral, que possuem quantidade de memória bastante limitada em relação a um PC, tais como: torradeiras, PDAs, relógios, entre outros. Mas Java ME - um apelido para J2ME - também não é limitado a jogos. Você pode por exemplo con&lt;/span&gt;&lt;span style="font-size:85%;"&gt;struir um programa de video conferência, ou até mesmo um programa que lhe mantenha diariamente atualizado com o valor atual do dólar e do euro.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul style="color: rgb(0, 51, 0);"&gt;&lt;li&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;J2EE (Java&lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt; 2 Enterprise Edition): &lt;/span&gt;&lt;span style="font-size:85%;"&gt;para não estender muito sua finalidade, esta edição é destinada a aplicações de grande porte com arquitetura cliente-servidor. Construir uma aplicação com J2EE possui uma série de benefícios, entre eles o reuso de componentes.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;O foco do nosso tutorial será no J2SE (Standard Edition), pois ele é o mais indicado para o aprendizado da linguagem - e com toda razão.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);font-size:85%;" &gt;JAVA 1.4... JAVA 1.5... JAVA 5... JAVA 6... por quê tantas versões?&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;Bem, como Java é uma linguagem viva e em constante atualização, obviamente sua versão é incrementada de tempos em tempos. Entretanto é relevante saber que a cada nova versão do Java grandes mudanças ocorrem. Isso não significa dizer que você terá que reaprender a como programar em Java a cada nova versão, muito pelo contrário, você vai aprender novos recursos que a nova ver&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;são &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_OLi0EWdXe-4/R1uHqCU2BFI/AAAAAAAAAB8/WeieXEWJAa4/s1600-h/TIGER.PNG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_OLi0EWdXe-4/R1uHqCU2BFI/AAAAAAAAAB8/WeieXEWJAa4/s320/TIGER.PNG" alt="" id="BLOGGER_PHOTO_ID_5141852555822105682" border="0" /&gt;&lt;/a&gt;disponibiliza.&lt;br /&gt;&lt;br /&gt;Em suas primeiras versões, Java era bastante criticada por ser uma linguagem lenta. E infelizmente era mesmo. Seu desempenho melhorou muito em sua versão 1.4, mas foi com a chegada da ver&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;são 1.5, ou 5.0, que seu desempenho obteve uma melhora espetacular e funcionalidades bastantes interessantes foram adicionadas à linguagem. Java 5 possui o codinome TIGER, desde já não estranhe se por acaso você encontrar a expressão Java Tiger. Agora você já sabe que estão se referindo ao Java 5.&lt;br /&gt;&lt;br /&gt;A versão mais atual do Java &lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;é 1.6, ou 6.0 - codinome Mustang. Porém, vamos iniciar nosso tutorial com o Java 5, pois temos ainda muito o que aprender com esta versão.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;QUER PROGRAMAR AGORA? ENTÃO PREPARE-SE...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;Para começar a programar você precisa fazer um &lt;span style="font-style: italic;"&gt;checklist&lt;/span&gt; do que você tem em mãos:&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;* Um computador com Sistema Operacional &lt;a href="http://pt.wikipedia.org/wiki/Microsoft_Windows"&gt;Wind&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;a href="http://pt.wikipedia.org/wiki/Microsoft_Windows"&gt;ows&lt;/a&gt;, &lt;a href="http://pt.wikipedia.org/wiki/Linux"&gt;Linux&lt;/a&gt; ou &lt;a href="http://pt.wikipedia.org/wiki/Macintosh"&gt;Mac&lt;/a&gt; instalado&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;* SDK da linguagem Java&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;* Uma IDE, de preferência. Se não quiser programar em&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt; bloco de notas...&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;Não sabe o que diabos é SDK? SDK (&lt;span style="font-style: italic;"&gt;Software Development Kit&lt;/span&gt;) é um kit de desenvolvimento que lhe possibilita desenvolver aplicações em uma determinada linguagem de programação, no nosso caso: Java. Fique atento e não confunda-se, pois você pode encontrar a sigla JDK (&lt;span style="font-style: italic;"&gt;Ja&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;va Development Kit&lt;/span&gt;) ou até mesmo JSDK (&lt;span style="font-style: italic;"&gt;Java System Development Kit&lt;/span&gt;), que no final significam SDK da linguagem Java.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;&lt;br /&gt;Já um(a) IDE (&lt;span style="font-style: italic;"&gt;Integrated Development Environment&lt;/span&gt;) é um ambiente de desenvolvimento que vai lhe ajudar bastante no momento da programação. Uma IDE possui uma interface gráfica intuitiva para que o programador facilmente detecte e corrija erros de compilaç&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;ão, crie novos projetos, automatize tarefas, etc.&lt;br /&gt;&lt;br /&gt;E então, vamos começar a baixar?&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;&lt;span style="font-weight: bold;"&gt;Baixando o SDK&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;Aqui vai o endereço do SDK do Java 5 que você precisa fazer o download:&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;a href="http://java.sun.com/javase/downloads/index_jdk5.jsp"&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;&lt;a href="http://java.sun.com/javase/downloads/index_jdk5.jsp"&gt;http://java.sun.com/javase/downloads/index_jdk5.jsp&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_OLi0EWdXe-4/R1uQoiU2BGI/AAAAAAAAACE/ALbhDr3WU9w/s1600-h/DOWNLOAD_JAVA1.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_OLi0EWdXe-4/R1uQoiU2BGI/AAAAAAAAACE/ALbhDr3WU9w/s320/DOWNLOAD_JAVA1.PNG" alt="" id="BLOGGER_PHOTO_ID_5141862425656951906" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;Após clicar em Download, você aceita os acordo de licença, aguarda um instante e escolhe a versão do seu Sistema Operacional + o tipo de instalação que você quer.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_OLi0EWdXe-4/R1uQ3CU2BHI/AAAAAAAAACM/zNKAnR3CaBk/s1600-h/DOWNLOAD_JAVA2.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_OLi0EWdXe-4/R1uQ3CU2BHI/AAAAAAAAACM/zNKAnR3CaBk/s320/DOWNLOAD_JAVA2.PNG" alt="" id="BLOGGER_PHOTO_ID_5141862674765055090" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;Após a seleção, clique em "&lt;span style="font-style: italic;"&gt;Download selected with Sun Download Manager&lt;/span&gt;". Agora é só baixar.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Baixando uma IDE&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;Você pode escolher uma ou mais IDEs entre as mais variadas existentes. São algumas delas: Eclipse, Netbeans, JEditor, JGrasp, BlueJ e GEL. Todas elas são gratuitas. Não seria muito produtivo se a cada Post eu desse suporte a cada uma dessas IDEs, desde já recomendo que você baixe a IDE Eclipse, cujo &lt;span style="font-style: italic;"&gt;release&lt;/span&gt; mais recente chama-se Eclipse Europa. Você pode baixar o Eclipse em: &lt;a href="http://www.eclipse.org/downloads/"&gt;http://www.eclipse.org/downloads/&lt;/a&gt;   clicando em "&lt;span style="font-style: italic;"&gt;Eclipse IDE for Java Developers&lt;/span&gt;".&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);font-size:85%;" &gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Bem, por esse Post é só. Continue a ler o Java Imediato para que vejamos como configurar o ambiente Java no Windows e a entender melhor como essa fantástica linguagem funciona.&lt;br /&gt;&lt;br /&gt;Um abraço. Até a próxima&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4634980943732216641-1809609968665732594?l=javaimediato.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/JavaImediato-SeuTutorialJava/~3/ahqgT-ICOes/dsfsdf.html</link><author>noreply@blogger.com (andrehbl)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_OLi0EWdXe-4/R1uHqCU2BFI/AAAAAAAAAB8/WeieXEWJAa4/s72-c/TIGER.PNG" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://javaimediato.blogspot.com/2007/12/dsfsdf.html</feedburner:origLink></item></channel></rss>
